在Java REST API中初始化Firebase Admin SDK的位置?

问题描述 投票:1回答:1

我正在使用Java和Jersey开发REST API。 REST API将由Flutter Mobile应用程序使用。

我决定在我的应用程序中使用Firebase。因此,移动应用将使用Firebase身份验证。但是,Firebase功能仅用于对用户进行身份验证,所有其他数据都在MySQL数据库中,可通过REST API访问。

现在,我根据此链接安装了Firebase Admin SDK - https://firebase.google.com/docs/admin/setup

以下是初始化应用程序的代码

try
        {
            ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
            InputStream serviceAccount = classLoader.getResourceAsStream("xxxxxx.json");

            FirebaseOptions options = new FirebaseOptions.Builder()
                .setCredentials(GoogleCredentials.fromStream(serviceAccount))
                .build();

            FirebaseApp.initializeApp(options);
        }
        catch(IOException io)
        {
            io.printStackTrace();
        }

我的问题是,哪个类应该放入此代码?我可以使用其余的过滤器类来验证Firebase发送的令牌并同时对其进行初始化。但是,这意味着如果我收到1M请求,Firebase将被初始化1M次!

我该如何解决这个问题?

java rest firebase jersey
1个回答
1
投票

每个需要访问的项目的每个进程只初始化一次Firebase Admin SDK。如果您有一个进程和一个要访问的项目,那么在该进程首次使用之前,只需在该进程中初始化一次。

© www.soinside.com 2019 - 2024. All rights reserved.