如何将GCM/FCM通知类型消息设置为非可折叠?
如何将FCM/GCM通知消息设置为非可折叠?
嘿,这个问题的核心在于理解FCM对可折叠/非可折叠消息的判定逻辑,我来给你梳理清楚:
首先,FCM里的规则是这样的:
- 任何带有
collapseKey(不管是你主动设置,还是FCM自动分配的)的消息都会被视为可折叠消息 - 通知消息默认是可折叠的,因为FCM会自动给同类型的通知生成一个默认的
collapseKey,用来合并重复的通知 - 非可折叠消息的核心要求是没有
collapseKey,同时消息优先级设为high
具体操作方法
要把通知消息改成非可折叠,你需要严格做到这两点:
- 完全不设置
collapseKey参数:别在请求里加这个字段,也别给它赋空值——只要你不指定,FCM就不会自动为这条通知生成默认的折叠键 - 显式设置
priority为high:高优先级是保证非可折叠消息即时送达的关键,避免被系统合并或延迟
示例请求(HTTP v1 API)
{ "message": { "token": "你的设备Token", "notification": { "title": "重要通知", "body": "这条通知不会被折叠合并" }, "android": { "priority": "high" }, "apns": { "payload": { "aps": { "priority": 10 } } } } }
额外提醒
- 如果还是出现折叠情况,检查下客户端代码或者FCM控制台有没有隐式添加
collapseKey的逻辑 - 要是你觉得上面的方法麻烦,还有个替代方案:把通知内容放到
data字段里,由客户端自己负责构建并展示通知——这样消息就变成了数据消息,默认就是非可折叠的,但需要你在客户端写额外的通知展示代码
内容的提问来源于stack exchange,提问作者Grodriguez
相关产品推荐
相关产品推荐

