我在哪里可以获得 Firebase 管理员的“serviceAccountCredentials.json”?

Posted

技术标签:

【中文标题】我在哪里可以获得 Firebase 管理员的“serviceAccountCredentials.json”?【英文标题】:Where can I get "serviceAccountCredentials.json" for Firebase Admin? 【发布时间】:2017-04-09 12:23:44 【问题描述】:

Here 是说我需要在 java 上设置 Firebase:

FirebaseOptions options = new FirebaseOptions.Builder()
    .setDatabaseUrl("https://databaseName.firebaseio.com")
    .setServiceAccount(new FileInputStream("path/to/serviceAccountCredentials.json"))
    .build();
FirebaseApp.initializeApp(options);

但是我在哪里可以获得 serviceAccountCredentials.json

更新: 我发现这个文件似乎应该有这个字段,但是从哪里得到这个值?


  "type": "",
  "project_id": "",
  "private_key_id": "",
  "private_key": "",
  "client_email": "",
  "client_id": "",
  "auth_uri": "",
  "token_uri": "",
  "auth_provider_x509_cert_url": "",
  "client_x509_cert_url": ""

【问题讨论】:

【参考方案1】:

在this link中找到有关此的详细信息

[2021 年 11 月 30 日更新]

为您的服务帐户生成私钥文件

在 Firebase 控制台中,打开设置 > Service Accounts。

点击 Generate New Private Key,然后点击 Generate Key 确认。

安全存储包含密钥的 JSON 文件。

通过服务帐户授权时,您有两种选择: 向您的应用程序提供凭据。您可以设置 GOOGLE_APPLICATION_CREDENTIALS 环境变量,或者你可以 在代码中显式传递服务帐户密钥的路径。首先 选项更安全,强烈推荐。

注意:当您生成新的私钥时,旧密钥将立即停止工作

要创建新的私钥文件,您需要转到此链接

https://console.firebase.google.com/project/**YOUR_PROJECT**/settings/serviceaccounts/adminsdk

[旧]

引用firebase docs:

    导航到项目设置页面中的Service Accounts 选项卡。 点击Service Accounts标签的Firebase Admin SDK部分底部的Generate New Private Key按钮。

点击按钮后,一个包含您的服务的 JSON 文件 将下载帐户的凭据。你需要这个 在下一步中初始化 SDK。

警告:当 在您的代码中处理服务帐户凭据。不要提交他们 到公共存储库,将它们部署在客户端应用程序中,或将它们公开 任何可能危及 Firebase 项目安全性的方式。

这个文件只生成一次。如果您丢失或泄漏密钥,您可以 重复上述说明为服务创建新的 JSON 密钥 帐户。

【讨论】:

JSON 文件应该保存在哪里? @xaunlopez 在您的项目源中的任何位置,或在您自己的服务器端,只需将路径放在文件“.setServiceAccount(new FileInputStream("path/to/serviceAccountCredentials.json"))” 项目来源不好,因为无法检查版本控制,服务器端是指firebase存储吗?我只是在使用 firebase firestore 和云功能。 当你生成一个新的私钥时,旧的密钥会立即停止工作吗? @perrosnk 是的,它将停止工作。 This file is only generated once. If you lose or leak the key, you can repeat the instructions above to create a new JSON key for the service account.【参考方案2】:

您可以直接转到您的 Firebase 门户 --> 项目设置,然后是服务帐户。 我做了一个解释所有细节的教程:How to get my Firebase Service Account Key file

【讨论】:

以上是关于我在哪里可以获得 Firebase 管理员的“serviceAccountCredentials.json”?的主要内容,如果未能解决你的问题,请参考以下文章

Firebase CustomClaims 存储在哪里

我在哪里使用颤振获得 SHA-1 证书指纹? (使用颤振创建--androidx ProjectName)

我在哪里可以找到我的 Firebase apiKey 和 authDomain

如果我没有域,我在哪里可以获得公共 SSL 证书?

在哪里可以检查或管理使用 Google Firebase 创建的 PubSub 主题?

使用 Firebase 用户管理添加额外字段