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

2024年6月后如何向FCM收发上行消息?

替代FCM XMPP的上行消息接收与送达率计算方案

方案1:HTTP v1 API + 自定义后端上报

  • 客户端发送上行消息时,先调用你的后端接口,携带消息唯一标识、设备ID等关键信息,后端先记录这条消息的发送记录。
  • 接着通过FCM HTTP v1 API发送下行消息,保存FCM返回的name字段(即下行消息ID),并与之前的上行消息标识关联存储。
  • 后续通过projects.messages.get接口查询该下行消息的送达状态,更新到你的统计数据中,以此计算送达率。
  • 优势:完全自主控制流程,无需依赖第三方中间件,能精准追踪每条消息的全链路状态。

方案2:Cloud Functions 触发器

  • 配置FCM的onMessageReceived云函数触发器,当设备向FCM发送上行消息时,自动触发你的云函数。
  • 在云函数内,直接将消息内容、消息ID、设备信息同步到你的后端(比如通过HTTP请求写入数据库),后端后续结合下行消息的状态数据完成送达率计算。
  • 注意事项:需配置好云函数的权限,确保能访问你的后端资源;高并发场景下要做好函数的扩容和错误重试逻辑。

方案3:自定义Webhook事件通知

  • 在FCM控制台配置事件通知,针对消息送达、消息点击等关键事件,设置你的后端接口作为Webhook接收地址。
  • 后端先记录上行消息的标识,当FCM触发对应事件时,会主动推送事件数据到你的Webhook接口,后端通过事件中的消息ID关联之前的上行记录,更新送达状态。
  • 优势:无需主动轮询FCM获取状态,减少后端资源消耗;但要确保Webhook接口的可靠性,比如实现签名验证、重试机制避免丢数据。

送达率计算的核心要点

  • 必须建立上行消息标识与下行消息ID的关联关系,确保每条上行消息对应的下行状态能被准确匹配。
  • 建议在数据库中创建专门的统计表,字段包含:上行消息ID、下行消息ID、发送时间、送达状态、设备ID等,定期基于该表数据计算送达率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 13:22:44