使用gcloud服务帐户登录Firebase

时间:2019-11-26 15:11:25

标签: firebase gcloud service-accounts firebase-cli

我已将功能部署到gcloud功能,并且我想配置CI / CD以从gitlab部署此功能。 要从gitlab进行任何操作,我需要使用

获取firebase身份验证令牌

firebase login:ci

命令。

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

时,该帐户不会显示在浏览器中

firebase login:ci

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

我应该如何授权使用此acc?

3 个答案:

答案 0 :(得分:3)

如果您将名为sal$type_employerCap = fct_collapse(sal$type_employer, fed_loc_state = c(" Federal-gov"," Local-gov ","State-gov "), inc_not-inc_ prv = c("Private"," Self-emp-inc","Self-emp-not-inc") , ? = c("Without-pay","Never-worked","?") )) 的环境变量设置为指向服务帐户JSON文件的路径,则Firebase CLI会自动选择该变量并将其用于授权命令。在这种情况下,您无需登录或提供GOOGLE_APPLICATION_CREDENTIALS参数。

答案 1 :(得分:1)

如果有人发现了这个并且想知道如何在 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]

答案 2 :(得分:0)

使用命令:

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"