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

如何在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
    
  • 关键注意事项

    1. 先做测试:可以先把pageSize设为1,关闭单个问题确认流程正常后,再执行批量操作。
    2. 权限验证:确保你的服务账号拥有「Firebase Crashlytics Admin」角色,否则会出现权限错误。
    3. 速率限制:API有请求频次限制,脚本中加入短延迟能避免触发限制导致请求失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 06:21:05