如何在指定时间内为某些用户更改Firebase主题?

时间:2017-02-21 06:15:36

标签: android firebase push-notification notifications firebase-cloud-messaging

我们有一个Android教育应用,我们使用FCM主题消息向每个用户发送特定通知。我们根据学年对每个用户进行了分类。

现在,我们在主题消息传递方面存在一个问题,在指定的时间内,这些学生会升到一个级别,如果我们不在Firebase中更改新学年的主题,则会给出去年的通知。

我们怎么做? Firebase是否有针对此问题的解决方案?谢谢< 3

1 个答案:

答案 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..."],
}