我们有一个Android教育应用,我们使用FCM主题消息向每个用户发送特定通知。我们根据学年对每个用户进行了分类。
现在,我们在主题消息传递方面存在一个问题,在指定的时间内,这些学生会升到一个级别,如果我们不在Firebase中更改新学年的主题,则会给出去年的通知。
我们怎么做? Firebase是否有针对此问题的解决方案?谢谢< 3
答案 0 :(得分:1)
这可以通过您的App Server使用InstanceID API。
来完成您可以Equipment
相应的令牌到您需要的新主题(即学术年度),然后batchAdd
来自旧主题(即去年)。
从上面的链接:
管理多个应用实例的关系图
使用Instance ID服务的批处理方法,您可以执行app实例的批量管理。例如,您可以向FCM或GCM主题执行批量添加或删除应用程序实例。要管理应用程序实例,请在此端点调用Instance ID服务,在JSON正文中提供应用程序实例令牌:
batchRemove
参数
https://iid.googleapis.com/iid/v1:batchAdd https://iid.googleapis.com/iid/v1:batchRemove
:key = YOUR_API_KEY。在标题中设置此参数。Authorization
:主题名称。to
:您要添加或删除的应用实例的IID令牌数组。结果
成功时,调用返回HTTP状态200.空结果表示成功订阅令牌。对于失败的订阅,结果包含以下错误代码之一:
- NOT_FOUND - 已删除注册令牌或已卸载应用程序。
- INVALID_ARGUMENT - 提供的注册令牌对发件人ID无效。
- INTERNAL - 后端服务器由于未知原因而失败。重试请求。
- TOO_MANY_TOPICS - 每个应用实例的主题数量过多。
POST请求示例
registration_tokens
示例结果
https://iid.googleapis.com/iid/v1:batchAdd Content-Type:application/json Authorization:key=API_KEY { "to": "/topics/movies", "registration_tokens": ["nKctODamlM4:CKrh_PC8kIb7O...", "1uoasi24:9jsjwuw...", "798aywu:cba420..."], }