在 Java REST API 中在哪里初始化 Firebase Admin SDK?
Where to initialize Firebase Admin SDK in Java REST API?
我正在使用 Java 和 Jersy 开发 REST API。 REST API 将由 Fluttervmobile 应用程序使用。
我决定在我的应用程序中使用 Firebase。因此移动应用程序将使用 Firebase 身份验证。然而,Firebase 函数目前仅用于验证用户身份,所有其他数据都在 MySQL 数据库中,可通过 REST API.
访问。
现在,我按照这个安装了Firebase Admin SDK link - 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();
}
我的问题是,class 应该把这段代码放在哪里?我可以使用其余过滤器 classes 来验证 Firebase 发送的令牌并同时对其进行初始化。然而,这意味着如果我收到 1M 请求,Firebase 将被初始化 1M 次!
我该如何解决这个问题?
您只需为每个需要访问的项目的每个进程初始化一次 Firebase Admin SDK。如果您只有一个进程和一个项目要访问,请在首次使用之前在该进程中初始化一次。
我正在使用 Java 和 Jersy 开发 REST API。 REST API 将由 Fluttervmobile 应用程序使用。
我决定在我的应用程序中使用 Firebase。因此移动应用程序将使用 Firebase 身份验证。然而,Firebase 函数目前仅用于验证用户身份,所有其他数据都在 MySQL 数据库中,可通过 REST API.
访问。现在,我按照这个安装了Firebase Admin SDK link - 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();
}
我的问题是,class 应该把这段代码放在哪里?我可以使用其余过滤器 classes 来验证 Firebase 发送的令牌并同时对其进行初始化。然而,这意味着如果我收到 1M 请求,Firebase 将被初始化 1M 次!
我该如何解决这个问题?
您只需为每个需要访问的项目的每个进程初始化一次 Firebase Admin SDK。如果您只有一个进程和一个项目要访问,请在首次使用之前在该进程中初始化一次。