Flutter项目中如何读取Firebase Cloud Messaging数据及已发送消息数量
FCM消息统计数据获取方案
首先明确:Flutter侧的FCM客户端SDK未提供直接获取已发送消息数量、送达率等统计指标的API,这类属于服务端/平台侧的统计数据,可通过以下三种可行方案实现:
方案1:服务端自行埋点统计
- 你所有的FCM消息发送请求都需要通过你自己的服务端调用
Firebase Admin SDK触发,不要在客户端直接发消息 - 服务端每次调用FCM发送接口时,在自有数据库中新增发送记录,记录发送时间、目标用户、消息类型、FCM接口返回的发送状态等字段
- 按需写统计逻辑,即可得到任意维度的已发送消息数、发送成功率等指标,客户端通过调用你自己的业务接口即可获取对应统计数据
方案2:通过BigQuery同步FCM事件做统计
- 在Firebase控制台开启FCM数据同步到BigQuery的功能,所有FCM的发送、送达、打开、失败等全链路事件都会自动同步到BigQuery表中
- 你可以在BigQuery中通过SQL语句自定义统计规则,比如统计某一时间段内全量已发送消息数、分渠道的送达率等
- 服务端封装BigQuery查询结果,提供接口给Flutter客户端调用即可
方案3:调用Google Cloud Monitoring API拉取官方统计
- Google Cloud Monitoring原生集成了FCM的核心指标,包括已发送消息数、送达数、失败数、送达率等现成的统计数据
- 你可以在服务端通过Cloud Monitoring API拉取这些官方统计的指标数据,不需要自行埋点,适合不需要自定义维度统计的场景
注意事项
- 所有统计数据的获取都必须经过你自己的服务端处理,禁止将Google Cloud的管理密钥、Firebase Admin密钥放到客户端中使用,避免出现权限泄露风险
- 如果需要统计单用户维度的消息接收数量,可以在客户端本地存储收到的消息计数,也可以在服务端为每个用户维护消息收发记录,按需拉取即可
内容的提问来源于stack exchange,提问作者Erkan Kılıç
相关产品推荐
相关产品推荐

