来自远程 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_id。 firebase_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] 进行身份验证