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

未在Payload中传入collapse_key时,推送通知是否会被合并?

我来帮你把这两个问题讲清楚哈:

1. 未传入collapse_key时的具体行为

先结合你提到的打盹模式场景拆解:

如果设备已连接但处于doze mode(打盹模式),低优先级消息会被GCM存储,直到设备退出打盹模式。而collapse_key标志的作用正在于此:如果已有相同collapse_key(及注册令牌)的消息存储并等待投递,旧消息会被丢弃,新消息取而代之(即旧消息被新消息合并)。但如果未设置collapse_key,新旧消息都会被存储以待后续投递。

简单说就是:没传collapse_key的话,所有暂存的同设备消息都会被完整保留,等设备退出打盹模式后,会一条不落的全部推送给设备,不会出现新消息替换旧消息的情况。只有当你指定了相同的collapse_key,才会触发“新消息覆盖旧消息”的合并逻辑,最终只投递最新的那条。

2. 关于通知消息的默认合并行为

你提到的官方描述是:

除notification messages(通知消息)外,所有消息默认不可合并。

这句话的核心是:通知消息默认支持合并机制,而数据消息默认不支持,但这并不等于“用户离线时收到多条通知,只会收到一条”——关键还是看collapse_key的设置:

  • 如果你给多条通知消息设置了相同的collapse_key,那用户离线时这些通知会被合并,等用户上线后只会收到最新的那一条;
  • 如果你没设置collapse_key,哪怕是通知消息,多条离线消息也会全部被保留,用户上线后会收到每一条独立的通知。

总结一下:通知消息只是“允许被合并”,但不会自动合并所有离线通知,是否合并完全取决于你有没有设置collapse_key,以及多消息的key是否一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:26:15