我一直在尝试将Firebase Admin SDK
实施到在JAVA上运行的后端服务器中。我的问题的源头是由Google提供的这段代码:
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);
我已经对其进行了测试并将其正确集成到我的代码中。但是,我不喜欢需要将serviceAccountKey.json
留在服务器中才能使用Admin SDK。
我有两个简单的问题要问你们
serviceAccountKey.json
)存储在服务器中(因为它可能会被反向工程)?.setDatabaseUrl(...)
?因为我使用Firebase身份验证,所以Firebase在我的服务器上唯一有效的数据库就是我的用户库。我将UID存储在自己的数据库中以引用用户。答案 0 :(得分:2)
是的,还有其他方法可以加载Admin SDK所需的配置,Hiranya Jayathilaka在this post中对此进行了提及:
您可以创建类似于以下内容的JSON文件
{
"databaseURL": "https://database-name.firebaseio.com",
"projectId": "my-project-id",
"storageBucket": "bucket-name.appspot.com"
}
然后在服务器中创建一个名为FIREBASE_CONFIG
的环境变量,并将其设置为指向JSON文件。
那么您只需要不带参数的调用FirebaseApp.initializeApp()
。
顾名思义,该方法仅用于指示实时数据库URL。如果您不使用它,则可以将其省略。