我需要向100000+个注册令牌发送推送通知,这会不时变化。
Legacy HTTP Server Protocol文档说,在registration_ids
字段中,我们最多只能传递1000个注册令牌。
我计划使用HTTP v1 API将通知发送到具有不同有效负载结构的Android和iOS。
我尝试通过将注册令牌作为{strong> tokens
字段中的数组传递给HTTP v1 API来将通知发送到不同的平台,并且我收到了通知Android和iOS设备都成功。
所以我的疑问是:
旧式HTTP协议中的registration_ids
字段的1000个令牌限制也将适用于HTTP v1 API中的tokens
字段吗?
我可以将所有10000多个注册令牌传递给tokens
字段吗?
如果没有,我该怎么办?
在for循环中发送1000个id是唯一的解决方法吗?
注意:我无法将这些注册令牌订阅到某个主题,因为自列表以来,每次发送推送通知时,每次引导通知我都会将其注册到一个新主题令牌的数量可能会不时变化。
主题消息支持每个主题的无限制订阅。 但是,FCM enforces limits在以下领域:
- 一个应用实例最多可以预订2000个主题。
- 如果您使用batch import来预订应用程序实例,则每个请求限制为1000个应用程序实例。
- 每个项目的新订阅频率受速率限制。如果您在短时间内发送太多订阅请求,则FCM 服务器将以
429 RESOURCE_EXHAUSTED
(“ quota 超出”)响应。请以指数补偿重试。
我们可以直接使用HTTP v1 API中的tokens
字段一次以1000个令牌的形式直接在for循环中以10000个令牌来订阅10000个以上的用户。已经尝试过使用两个令牌)对吗?
你在做什么?您有什么看法?任何参考和最佳实践资源将不胜感激。
参考链接:
https://firebase.google.com/docs/cloud-messaging/http-server-ref#downstream-http-messages-json https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages https://firebase.google.com/docs/cloud-messaging/migrate-v1