如何将数据从 Firebase Crashlytics 导出到另一个应用程序?

Posted

技术标签:

【中文标题】如何将数据从 Firebase Crashlytics 导出到另一个应用程序?【英文标题】:How to export data from Firebase Crashlytics to another application? 【发布时间】:2020-04-27 16:06:33 【问题描述】:

我有兴趣从 Google firebase Crashlytics 获取无崩溃用户统计信息和受崩溃趋势影响的用户。

是否有任何 API 可供我使用我的应用程序调用以从 Firebase Crashlytics 导出数据?

我查看了其他一些类似的问题,例如这些:

How long does Firebase store my crash data? / Export data from Crashlytics? Export data from Firebase Crashlytics console? How to export crash-free users from firebase?

,但他们都没有真正提到从 Crashlytics 导出数据的解决方案。

按照上述问题之一的建议,我可以将数据导出到 Big Query,然后自己计算无崩溃统计信息,但我之前没有使用过 Big Query,我不确定我是否能够也可以从 Big Query 中导出该数据?

是否有可能以某种方式从 Crashlytics 中获取这些数据?

更新

在为我的应用加载 Crashlytics 数据时,在 Google Chrome 中更仔细地查看网络控制台后,我可以看到 Crashlytics 对以下端点(连同其 auth/cookies)进行了 POST 调用:

https://***.google.com/v1/projects/***/clients/ios:abc.def.MyApp:getDailyRealtimeCrashUsersReport?alt=json&key=xyz

并且对此的响应包含我正在寻找的确切数据:


  "report": 
    "dailyUsers": [
      
        "dateMs": "xxxx",
        "totalUsers": 1234,
        "crashUsers": 12
      
      ...
      ...
    ],
    "totalUsers": 12345,
    "totalCrashUsers": 123
  



有没有一种方法可以通过我的 (Java) 代码直接调用此 API 以及适当的身份验证(可能是 OAuth2?),而不必去 BigQuery 并执行所有这些额外步骤?直接调用此端点并直接获取数据会更容易,而不是先将其导出到 BigQuery 并在那里运行自定义查询 (/queries?) 并通过另一个 API 导出数据。

还有,

如果这样的解决方案不可行,那么有没有办法从 BigQuery 获取类似类型的数据并通过 BigQuery API 调用以 JSON 格式导出类似的数据?

从下面答案中给出的 BigQuery API 链接中,我可以看到一些支持导出模型/项目/作业/数据集/表等的 API。但无法确定是否有一种方法可以根据我需要运行一个自定义查询来获取我想要的数据?

【问题讨论】:

导出到 BigQuery 是一个非常合理的选择,@rmesteves 答案提供了导出操作方法链接。一旦数据在 Bigquery 中,有几个选项可以使用它: (1) 导出到 Google Cloud Storage 存储桶并从那里下载。 (2) 在 Google Data Studio 中可视化数据。 (3) 使用Crisp BigQuery(我是作者)构建一个由 BigQuery 数据水合的网站,并对数据呈现和成本进行完全控制。 (4) 使用 Google 表格的 Google 连接器或 Excel 的 Google 连接器来导出数据。 (5) 使用谷歌 SDK。 hm,BigQuery 似乎是一个可能的解决方案,但它会导出很多我并不真正需要的额外数据......而且我不确定如何获取数据我从 BigQuery API 中要求的格式,或者即使有可能从 API 中获得相应的响应.. ? 【参考方案1】:

Crashlytics 似乎不支持您正在搜索的这种 API。

关于从Crashlytics导出到BigQuery,我找到了以下信息here

启用 BigQuery 导出

    转到 Firebase 控制台中的集成页面。 在 BigQuery 卡片中,点击链接。 按照屏幕上的说明启用 BigQuery。

当您将项目链接到 BiqQuery 时:

Firebase 将现有数据的副本导出到 BigQuery。 Firebase 设置每天将您的数据从 Firebase 项目同步到 BigQuery。 默认情况下,您项目中的所有应用都链接到 BigQuery,您以后添加到项目中的所有应用都会自动链接到 BigQuery。

哪些数据会导出到 BigQuery?

Firebase Crashlytics 数据导出到名为 BigQuery 的数据集 firebase_crashlytics。默认情况下,将创建单个表 在项目中每个应用程序的 Crashlytics 数据集中。 Firebase 根据应用程序的包标识符命名表,使用 句点转换为下划线,并在 结尾。例如,ID 为 com.google.test 的应用的数据将是 在名为 com_google_test_android 的表中。

要从BigQuery 导出数据,您可以使用BigQuery API 或将BigQuery SDK 用于某些编程语言。

对你有帮助吗?如果没有,请提供更多信息,以便我为您提供更好的答案。

【讨论】:

请问,除了 BigQuiry 表之外,还有其他导出 Crashlytics 数据的选项吗?我的要求是将 Crashlytics 数据导出到 Azure【参考方案2】:

Google Analytics Data API 是从 Crashlytics 导出 crashAffectedUsers 和 crashFreeUsersRate 数据的解决方案。 crashAffectedUsers 是记录崩溃的用户数,而 crashFreeUsersRate 是没有崩溃事件的用户数除以用户总数。 Data API schema page 包含有关这些指标的更多详细信息。

RunReport 方法的示例请求如下所示:


  "dateRanges": [
    
      "startDate": "7daysAgo",
      "endDate": "today"
    
  ],
  "dimensions": [
    
      "name": "date"
    
  ],
  "metrics": [
    
      "name": "crashFreeUsersRate"
    ,
    
      "name": "crashAffectedUsers"
    ,
    
      "name": "totalUsers"
    
  ]

示例响应行如下所示。此行表示:2021-11-13,无崩溃用户率为 99.836%,2 名用户受到崩溃影响,共有 1220 名用户使用了您的应用。

    
      "dimensionValues": [
        
          "value": "20211113"
        
      ],
      "metricValues": [
        
          "value": "0.99836"
        ,
        
          "value": "2"
        ,
        
          "value": "1220"
        
      ]
    ,

【讨论】:

以上是关于如何将数据从 Firebase Crashlytics 导出到另一个应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据从 Firebase 获取到哈希映射中?

如何将过去几天的数据从 Firebase 重新加载到 BigQuery?

如何将应用程序的旧分析数据从 firebase 获取到 bigquery?

如何将数据从 firebase 检索到 ListView?

如何将 Firebase BigQuery 集成“数据集生存时间”从 60 天更改为不会过期?

如何从另一个firebase项目中写入firebase数据库?