使用 gcloud 服务帐户登录到 firebase

Login to firebase using gcloud service account

我已将函数部署到 gcloud 函数,我想配置 CI/CD 以从 gitlab 部署此函数。 要从 gitlab 执行任何操作,我需要使用

获取 firebase 身份验证令牌

firebase login:ci

命令。

问题是我需要使用 gcloud 服务帐户获取此令牌,当我 运行

时,该令牌未显示在浏览器中

firebase login:ci

我有此服务帐户数据(project_idprivate_keyprivate_key_id 等)

我应该如何授权使用这个acc?

如果您将名为 GOOGLE_APPLICATION_CREDENTIALS 的环境变量设置为指向您的服务帐户 JSON 文件的路径,Firebase CLI 将自动选取该变量并使用它来授权命令。在这种情况下,您无需登录或提供 --token 参数。

使用命令:

gcloud auth activate-service-account xyz@project-id.iam.gserviceaccount.com  --key-file=/path/to/file.json --project=project-id
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/file.json"

如果有人找到这个并且想知道如何在 CircleCI 上做,这对我有用。

  1. 在 GCP Console 中为您的服务帐户生成一个 json 文件密钥
  2. 在组织级别或项目级别将 json 设置为 CircleCI 环境变量
    • 我们在组织级别使用一个名为 GSA_KEY
  3. 在您的工作流配置中,在您 运行 firebase 命令之前,运行 此命令:
    • echo echo $GSA_KEY > "$HOME"/gcloud.json
  4. 然后 运行 你的 firebase deploy 命令,首先将路径设置为 GOOGLE_APPLICATION_CREDENTIALS

部署 运行 看起来像:

steps:
  - checkout
  - run:
      name: Create SA key JSON
      command: echo $GSA_KEY > "$HOME"/gcloud.json
  - run:
      name: Deploy to Firebase
      command:
        GOOGLE_APPLICATION_CREDENTIALS="$HOME"/gcloud.json firebase deploy [project specific stuff]