如何在Firebase Crashlytics中批量关闭含unknown context at的问题
批量关闭Firebase Crashlytics中匹配特定关键词的问题
核心解决方案:调用Firebase Crashlytics REST API批量操作
Crashlytics网页端没有批量关闭问题的功能,最快的处理方式是通过官方API实现批量操作,具体步骤如下:
第一步:获取服务账号密钥
登录Firebase控制台,进入目标项目 → 「项目设置」→ 「服务账号」→ 点击「生成新的私钥」,下载JSON格式的密钥文件并妥善保存。第二步:编写脚本批量处理
用脚本调用API筛选并关闭匹配关键词的问题,以下是Python示例(需提前安装requests和google-auth库):import json import requests import time from google.oauth2 import service_account # 替换为你的项目ID和密钥文件路径 PROJECT_ID = "your-firebase-project-id" SERVICE_ACCOUNT_FILE = "path/to/your/service-account-key.json" # 定义API端点 LIST_ISSUES_URL = f"https://firebasecrashlytics.googleapis.com/v1beta1/projects/{PROJECT_ID}/issues" UPDATE_ISSUE_URL_TEMPLATE = f"https://firebasecrashlytics.googleapis.com/v1beta1/projects/{PROJECT_ID}/issues/{{issue_id}}" # 生成认证凭证 credentials = service_account.Credentials.from_service_account_file( SERVICE_ACCOUNT_FILE, scopes=["https://www.googleapis.com/auth/firebase"] ) auth_header = {"Authorization": f"Bearer {credentials.token}"} # 分页获取所有匹配关键词的问题 page_token = None while True: params = { "filter": "title:~\"unknown context at\"", # 关键词筛选规则 "pageSize": 100, # 单次请求最大返回数,可按需调整 "pageToken": page_token } response = requests.get(LIST_ISSUES_URL, headers=auth_header, params=params) response.raise_for_status() data = response.json() issues = data.get("issues", []) # 逐个关闭问题 for issue in issues: issue_id = issue["name"].split("/")[-1] update_url = UPDATE_ISSUE_URL_TEMPLATE.format(issue_id=issue_id) update_data = {"status": "CLOSED"} update_response = requests.patch(update_url, headers=auth_header, json=update_data) update_response.raise_for_status() print(f"已关闭问题ID: {issue_id}") time.sleep(0.1) # 加小延迟避免触发API速率限制 # 处理分页逻辑 page_token = data.get("nextPageToken") if not page_token: break关键注意事项
- 先做测试:可以先把
pageSize设为1,关闭单个问题确认流程正常后,再执行批量操作。 - 权限验证:确保你的服务账号拥有「Firebase Crashlytics Admin」角色,否则会出现权限错误。
- 速率限制:API有请求频次限制,脚本中加入短延迟能避免触发限制导致请求失败。
- 先做测试:可以先把
内容的提问来源于stack exchange,提问作者reggian
相关产品推荐
相关产品推荐

