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

使用GCP服务账号密钥通过GitHub Actions部署Firebase遇错求助

问题描述

我尝试通过以下GitHub Actions工作流,用GCP服务账号密钥认证部署Flutter项目到Firebase,但始终报错:

- id: auth
  name: Authenticate to Google Cloud
  uses: google-github-actions/auth@v0.4.0
  with:
    credentials_json: '${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}'
- name: deploy flutter to Firebase
  run: |
    npm install -g firebase-tools
    # firebase login --reauth
    firebase deploy

错误:无法获取Firebase项目xyz,请确保项目存在且您的账号有权限访问它。

已完成排查:

  • GCP服务账号已配置Firebase Admin、Firebase Develop Admin角色
  • 已生成服务账号密钥并存储在GitHub Secrets(命名为GOOGLE_APPLICATION_CREDENTIALS)
  • 不想使用firebase login:ci(该方式即将弃用)
  • 尝试给服务账号添加Owner角色后,错误依旧

求可行解决方案。


解决方案

1. 部署时显式指定Firebase项目ID

firebase deploy可能无法自动匹配到目标项目,在命令中明确指定项目ID:

firebase deploy --project xyz

2. 让firebase-tools复用GCP认证上下文

google-github-actions/auth仅配置了GCP的认证环境,但firebase-tools需要明确关联该身份。可以通过以下步骤绑定:

- name: deploy flutter to Firebase
  run: |
    npm install -g firebase-tools
    # 将密钥写入临时文件,让firebase-tools能读取到
    echo '${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}' > /tmp/service-account.json
    export GOOGLE_APPLICATION_CREDENTIALS="/tmp/service-account.json"
    # 用gcloud获取当前认证的访问令牌,关联到指定Firebase项目
    firebase use xyz --token "$(gcloud auth print-access-token)"
    firebase deploy --project xyz

3. 验证Firebase与GCP项目的绑定关系

确认Firebase项目xyz已和服务账号所在的GCP项目完成绑定,二者必须属于同一资源关联组。

4. 更新认证Action版本

你使用的google-github-actions/auth@v0.4.0版本较旧,存在兼容性风险,建议升级到最新稳定版:

uses: google-github-actions/auth@v2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:52:47