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

使用Google API Python Client调用Firebase App Distribution遇HTTP 400错误

解决Firebase App Distribution API 400无效参数错误

出现400错误通常是参数格式或权限配置问题,以下是具体排查和解决步骤:

1. 服务账号凭证缺少API访问权限范围

默认生成的服务账号凭证不会自动包含Firebase App Distribution API的访问权限,必须手动指定所需的权限范围:

修改凭证初始化代码,添加scopes参数:

credentials = service_account.Credentials.from_service_account_file(
    service_account_file,
    scopes=["https://www.googleapis.com/auth/firebase.appdistribution"]
)

2. 检查Parent参数格式是否正确

你当前使用的app_id是Firebase控制台显示的标准格式(1:xxx:android:xxx),这个格式本身是正确的,但需要确认:

  • project_id是服务账号JSON文件中的project_id(字符串格式,如my-firebase-project-abc123),而非项目编号(纯数字)
  • 拼接后的parent路径格式严格为projects/{project_id}/apps/{app_id},没有多余的符号或空格

3. 额外排查项

  • 确认服务账号已在Firebase控制台添加为项目成员,且授予了Firebase App Distribution Admin及以上权限(你用的所有者权限没问题,但可以再核对)
  • 前往Google Cloud Console的API库,搜索并启用Firebase App Distribution API

修改后的完整脚本示例

import os
from google.oauth2 import service_account
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError

script_dir = os.path.dirname(os.path.abspath(__file__))
service_account_file = os.path.join(script_dir, 'service-account.json')

# 添加API所需的权限范围
credentials = service_account.Credentials.from_service_account_file(
    service_account_file,
    scopes=["https://www.googleapis.com/auth/firebase.appdistribution"]
)

project_id = credentials.project_id
app_id = "1:310501947997:android:4f5183af1eddc4004eabb4"

service = build('firebaseappdistribution', 'v1', credentials=credentials)

try:
    parent = f"projects/{project_id}/apps/{app_id}"
    app_releases = service.projects().apps().releases().list(parent=parent).execute()
    print(app_releases)
except HttpError as e:
    # 打印更详细的错误内容,方便进一步排查
    print(f'错误状态码: {e.status_code}')
    print(f'错误详情: {e.content.decode("utf-8")}')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 12:05:07