Java 后端服务器:如何保留FirebaseApp实例?
我一直在尝试将FirebaseJava 后端服务器:如何保留FirebaseApp实例?,java,firebase,google-admin-sdk,firebase-admin,Java,Firebase,Google Admin Sdk,Firebase Admin,我一直在尝试将FirebaseAdminSDK实现到我们的后端服务器中,运行在JAVA上。我的问题来源于谷歌提供的这段代码: FileInputStream serviceAccount = new FileInputStream("path/to/serviceAccountKey.json"); FirebaseOptions options = new FirebaseOptions.Builder() .setCredentials(GoogleCredentials.from
AdminSDK
实现到我们的后端服务器中,运行在JAVA上。我的问题来源于谷歌提供的这段代码:
FileInputStream serviceAccount = new FileInputStream("path/to/serviceAccountKey.json");
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/")
.build();
FirebaseApp.initializeApp(options);
FileInputStream servicecomport=newfileinputstream(“path/to/serviceAccountKey.json”);
FirebaseOptions=newfirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.setDatabaseUrl(“https://.firebaseio.com/")
.build();
FirebaseApp.initializeApp(选项);
我已经对它进行了测试,并将其正确地集成到我的代码中。但是,我不喜欢为了使用AdminSDK而需要将serviceAccountKey.json
留在服务器中
我有两个简单的问题要问你们:
serviceAccountKey.json
)(因为它可能是反向工程的).setDatabaseUrl(…)
?Firebase服务器上唯一有效的数据库是我的用户群,因为我使用Firebase身份验证。我将UID存储在自己的数据库中以引用用户{
"databaseURL": "https://database-name.firebaseio.com",
"projectId": "my-project-id",
"storageBucket": "bucket-name.appspot.com"
}
然后在服务器中创建名为FIREBASE\u CONFIG
的环境变量,并将其设置为指向JSON文件
然后您只需要调用FirebaseApp.initializeApp()
,无需任何参数非常感谢。关于您的第一个答案:我相信我记得读过Firebase中的“Bucket”是一种付费功能。这是否意味着我需要支付服务费用才能使用这种方法?很抱歉我必须问这个问题,但是:什么是环境变量?我很难理解如何正确地修改这段代码。Bucket用于Firebase的云服务(如存储和Firestore)。但由于您只使用Firebase Auth,所以不必担心它。环境变量是存储在服务器上的变量。因为它是环境的一部分,所以它的公开方式与服务器公开json文件的方式不同。因此,将配置信息放在那里更安全。您可能希望查看服务器文档或internet上如何设置环境变量。只需快速谷歌一下。例如,如果您使用的是Tomcat服务器,google:“如何在Tomcat上设置env变量?”