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

Azure Pipelines中通过GOOGLE_APPLICATION_CREDENTIALS认证Firebase失败

解决方案

1. 修复服务账户JSON文件生成问题

用echo输出密钥时,换行符和特殊字符会被破坏,导致JSON格式无效。改用printf写入文件:

printf "%s" "$(firebase-credentials)" > $(Pipeline.Workspace)/service-account.json

或者使用Azure官方的文件写入任务更可靠:

- task: FileTransform@2
  displayName: Write service account JSON
  inputs:
    folderPath: $(Pipeline.Workspace)
    fileType: json
    targetFiles: service-account.json
    content: $(firebase-credentials)

2. 显式完成Firebase服务账户认证

Firebase CLI不会自动读取GOOGLE_APPLICATION_CREDENTIALS完成认证,需要显式执行登录命令生成token:

# 生成认证token
FIREBASE_TOKEN=$(firebase login:ci --service-account $(Pipeline.Workspace)/service-account.json)

# 使用token执行后续命令
firebase projects:list --token $FIREBASE_TOKEN
firebase appdistribution:distribute "<<REDACTED-PATH>>" --app "<<REDACTED-APP-ID>>" --groups "<<REDACTED-GROUP-NAME>>" --release-notes "<<REDACTED-RELEASE-NOTES>>" --token $FIREBASE_TOKEN

3. 验证服务账户权限

确保服务账户在Google Cloud控制台的IAM页面拥有以下权限:

  • Firebase App Distribution Admin
  • Firebase Viewer/Editor(根据部署需求选择)

4. 确保环境变量全局生效

如果后续步骤需要使用GOOGLE_APPLICATION_CREDENTIALS,用Azure Pipeline的变量设置命令替代export:

echo "##vso[task.setvariable variable=GOOGLE_APPLICATION_CREDENTIALS]$(Pipeline.Workspace)/service-account.json"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 22:34:51