You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bitbucket流水线中Firebase CLI使用GOOGLE_APPLICATION_CREDENTIALS认证失败求助

解决Bitbucket流水线中Firebase App Distribution服务账号认证失败的问题

核心问题定位

你直接把服务账号JSON内容赋值给GOOGLE_APPLICATION_CREDENTIALS变量是错的——这个环境变量要求的是JSON密钥文件的绝对路径,而非密钥内容本身。Firebase CLI找不到对应文件,就会 fallback 到交互式登录流程,导致报错。

分步解决步骤

  • 临时生成密钥文件
    在执行分发命令前,先把环境变量里的JSON内容写入临时文件,再把变量指向这个文件:
    echo "$GOOGLE_APPLICATION_CREDENTIALS" > /tmp/service-account-key.json
    export GOOGLE_APPLICATION_CREDENTIALS="/tmp/service-account-key.json"
    
  • 补全服务账号权限
    除了Firebase App Distrib. Admin,还要确保账号拥有Firebase Viewer(或更高)权限,保证能访问目标Firebase项目。
  • 显式指定项目ID
    避免CLI自动检测项目出错,在分发命令里加上项目ID参数:
    firebase appdistribution:distribute <你的安装包路径> --project <Firebase项目ID> --testers <测试人员邮箱>
    
  • 升级Firebase CLI
    旧版本对服务账号认证支持可能有bug,先更到最新稳定版:
    npm install -g firebase-tools
    
  • 强制服务账号认证(可选)
    若上述步骤无效,可手动执行认证命令强制使用服务账号:
    firebase login:ci --token "$(gcloud auth activate-service-account --key-file=$GOOGLE_APPLICATION_CREDENTIALS --format='value(access_token)')"
    

完整流水线示例片段

script:
  - echo "$GOOGLE_APPLICATION_CREDENTIALS" > /tmp/service-account-key.json
  - export GOOGLE_APPLICATION_CREDENTIALS="/tmp/service-account-key.json"
  - npm install -g firebase-tools
  - firebase appdistribution:distribute app/build/outputs/apk/release/app-release.apk --project my-firebase-project-id --testers testers@example.com

内容的提问来源于stack exchange,提问作者Pahom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 15:03:19