2016-12-21 193 views
1

我从来没有使用FCM之前(或GCM),但我寻找到写一个应用程序,这将涉及发布消息到多个设备,和“主题”似乎是一个不错的办法。发布/订阅FCM主题

从我到目前为止阅读文档,我的应用程序服务器将消息发布到一个名为话题,所以想必它并不需要了解注册标记的接收设备?

我相信一个注册令牌必须订阅主题时指定,所以我想接收设备仍然必须请求令牌才可以订阅。当令牌过期时会发生什么 - 应用程序是否必须使用新令牌再次订阅该主题?

回答

1

因此假设它不需要知道收件人设备的注册令牌?

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

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

在Android中,你只需要调用

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

到设备订阅一个主题。我如何理解这个工作进行了说明here,其中FirebaseMessaging类调用FirebaseInstanceId的实例和方式(大概)认购当前活动的注册标记。

根据@DiegoGiorgini's answer here,如果令牌为,则刷新将维护主题订阅。

AFAIK(还没有遇到它尚未),相应的注册令牌应该被重新订阅。取决于您实施订阅的位置。

我建议有它在应用程序本身的开始。如果您的应用服务器上有主题列表(应该有多个主题),那么更好,如果需要,也许可以使用InstanceID API进行重新订阅。

+0

非常感谢。所以设备不需要在调用中显式传递它的令牌来订阅? (我认为它确实,但也许是GCM,而不是FCM)。 –

+1

@AndrewStephens没有。只需从客户端调用'subscribeToTopic()',它就会使用相应的标记。干杯! –