如何在Firebase通知请求中指定多个接收目标?附请求示例
Firebase通知设置多个接收目标的方法
当然可以给多个设备发送Firebase通知!FCM(Firebase Cloud Messaging)提供了好几种灵活的实现方式,我结合你给出的单目标示例,给你拆解每种方法的用法:
1. 直接传多个设备令牌(registration_ids)
如果是给特定的一批设备发通知,你可以把原来请求里的to字段换成registration_ids,值是一个包含多个设备令牌的数组(FCM限制最多支持1000个令牌)。
请求头和你原来的一致:
Content-Type: application/json Authorization: key=你的服务器密钥
对应的请求体示例:
{ "data": { "title": "Firebase notification", "detail": "I am firebase notification. you can customise me. enjoy" }, "registration_ids": [ "c_ejgKg_0rY:APA91bEtp77PP99UuDvza1gKOKAmfqVg3ZHflWYQUGPQJFCvWy3Ortswv45MjtT8LQaRoebLqSXPTeaO21hm7QVnG694GgVmALbK5LIDAsyohKlTFlQSlwcdYQmPS5GnLGjLwfA3b34z", "device_token_2", "device_token_3" ], "sound":"default" }
2. 发送到主题(Topics)
如果你的用户设备都订阅了同一个主题(比如“daily_news”),直接发送到这个主题就行,不用手动收集每个设备的令牌。
请求体示例:
{ "data": { "title": "Firebase notification", "detail": "I am firebase notification. you can customise me. enjoy" }, "to": "/topics/daily_news", "sound":"default" }
3. 基于条件发送(Conditions)
如果需要更灵活的分组(比如订阅了A主题或B主题的用户),可以用condition字段代替to,支持逻辑运算符&&(且)、||(或)、!(非)。
请求体示例:
{ "data": { "title": "Firebase notification", "detail": "I am firebase notification. you can customise me. enjoy" }, "condition": "'sports_news' in topics || 'tech_news' in topics", "sound":"default" }
小提醒
- 使用
registration_ids时,数组长度不能超过1000,超过的话要拆分多次请求; - 主题订阅需要客户端先调用FCM的订阅接口,把设备和对应主题关联起来;
- 条件表达式最多支持5个逻辑运算符的组合,不要写得太复杂哦。
内容的提问来源于stack exchange,提问作者YeisonM
相关产品推荐
相关产品推荐

