发布/订阅FCM主题

时间:2016-12-21 16:18:58

标签: android firebase firebase-cloud-messaging

之前我从未使用过FCM(或GCM),但我正在考虑编写一个应用程序,该应用程序涉及向多个设备发布消息,以及"主题"似乎是一个很好的方法。

根据我之前阅读过的文档,我的应用服务器会将消息发布到指定的主题,因此可能不需要知道接收设备的注册令牌?

我认为在订阅主题时必须指定注册令牌,所以我猜一个收件人设备必须仍然可以在订阅之前请求令牌。令牌过期时会发生什么 - 应用程序是否必须使用新令牌再次订阅该主题?

1 个答案:

答案 0 :(得分:1)

  

所以大概是不需要了解收件人设备的注册令牌?

没有。它没有。但我强烈建议您保存注册令牌,这样您就可以在将来使用Diagnostics tool跟踪它们。

  

令牌过期后会发生什么 - 应用程序是否必须使用新令牌再次订阅该主题?

在Android中,您只需调用

即可
FirebaseMessaging.getInstance().subscribeToTopic(<topic_name_here>);

将设备订阅到主题。关于我如何理解这种方法的方式解释为here,其中FirebaseMessaging类调用FirebaseInstanceId的实例,并且(可能)订阅当前活动的注册令牌。

根据@DiegoGiorgini's answer here,如果令牌刷新,则会保留主题订阅。

AFAIK(尚未遇到),应重新订阅相应的注册令牌。取决于您实现订阅的位置。

我建议在启动应用程序时使用它。如果您的App Server上有一个主题列表(应该有多个主题),那就更好了,如果需要,可以使用InstanceID API进行重新订阅。