来自远程 REST API 的 Firebase 分析?

Posted

技术标签:

【中文标题】来自远程 REST API 的 Firebase 分析?【英文标题】:Firebase analytics from remote REST API? 【发布时间】:2018-05-15 17:05:20 【问题描述】:

是否可以将 Firebase 分析挂钩到远程 REST API 端点?

更具体地说,假设我有一个远程 REST API,其端点可以计算我的每个用户上传的视频的平均数量,/api/videos/get_average_count。我可以以某种方式将该统计数据集成到 Firebase 分析中吗? (我认为 Firebase 分析中没有报告 API?)

或者,无论如何,我可以从其他分析(在前端跟踪)中获取 Firebase 数据,并将该数据集成/嵌入到我自己的后端托管的自定义管理员中?

【问题讨论】:

【参考方案1】:

没有可供您上传、下载甚至分析分析数据的可用 REST API。您可以联系Firebase Support 团队并为此提交功能请求。我相信不仅仅是您在 Google Analytics for Firebase 中寻找这种功能。

您可以使用 Firebase 控制台直接以 CSV 格式下载活动的分析数据。或者,如果您正在制定紧急计划,link your Firebase to BigQuery,分析数据将每天导出到相应的数据集。

【讨论】:

【参考方案2】:

现在,Measurement Protocol (Google Analytics 4) 尚处于早期阶段,但正如我们所说,它实际上正处于推出的过程中。我已经为我的 ios firebase 数据流实现了服务器到服务器的事件。类似 curl 的请求示例。

Faraday.new(url: "https://www.google-analytics.com/mp/collect?firebase_app_id=#your_app_id&api_secret=#secret_from_ga4_stream_details").post do
  req.headers["Content-Type"] = "application/json"
  req.body = app_instance_id: firebase_instance_id, user_id: user.id, events: [].to_json
end

这与标准 G4 属性的签名略有不同,其中查询参数包括测量 ID 和客户端 ID。对于 firebase 项目,您传递从 firebase 项目设置中获得的 firebase_app_idfirebase_instance_id 是您可能不熟悉的东西,您将需要从设备集成到后端。例如,来自 ios 的实例 id 将是 Analytics.appInstanceID()

【讨论】:

任何 API 来获取分析数据? @AbishekKumar:那将是分析数据 API。见***.com/questions/35095707/… 有没有办法获取 Firebase Analytics 生成的事件数据,我可以使用它来将事件发送到第三方跟踪解决方案?您如何填充请求的正文?【参考方案3】:

以下 curl 命令将记录到 Firebase 分析。

curl -v -X POST \
  'https://www.google-analytics.com/g/collect?v=2&tid=YOUR-MEASUREMENT-ID&_dbg=1&cid=YOUR-CID&en=testing&ep.origin=firebase' \
  -H "Content-Type: text/plain;charset=UTF-8" -H "sec-fetch-mode: no-cors" -H "sec-fetch-site: cross-site" -H "sec-fetch-dest: empty" \
  -H "pragma: no-cache" -H "cache-control: no-cache" -H "origin: http://localhost:3000" \
  -H "content-length: 0" -H "accept-language: en-US,en;q=0.9" -H "accept-encoding: gzip, deflate, br" -H "user-agent: dummy"

为了使这个 curl 命令起作用,您需要做两件事:

    您需要为tid URL 参数提供一个值。您应该为您的 Firebase 项目使用 measurementId。这个link 告诉你如何获得它。 您需要为cid URL 参数提供一个值。如果您只是在测试,您可以通过在网络选项卡中查看 Firebase JS SDK 从浏览器发送的请求并从其中一个复制 cid 来找到这一点。请注意,cid 将作为 cookie 包含在向您的 Web 服务器发出的请求中,因此在从您的服务器实际登录时,您应该从该 cookie 中获取 cid

您应该能够将该 curl 命令翻译成您选择的服务器语言的代码。有关此方法的更多信息,请查看https://pencilflip.medium.com/using-firebase-analytics-server-side-64ffacafa6c3。

【讨论】:

以上是关于来自远程 REST API 的 Firebase 分析?的主要内容,如果未能解决你的问题,请参考以下文章

来自 Flutter App 的 Firebase Id Token 未在 REST 服务器上验证

Firebase 动态链接 REST API 中未记录的参数

如何使用rest api写入firebase数据库?

使用邮件和密码通过 REST API [Firebase] 进行身份验证

Firebase 动态链接 REST API 返回 400 错误请求

如何通过 REST API 读取 Firebase 有序数据?