【问题标题】:Publishing/subscribing to FCM topics发布/订阅 FCM 主题
【发布时间】:2017-05-07 03:32:03
【问题描述】:

我以前从未使用过 FCM(或 GCM),但我正在考虑编写一个涉及将消息发布到多个设备的应用程序,并且“主题”似乎是一个不错的方法。

从我目前阅读的文档来看,我的应用服务器会将消息发布到指定主题,所以大概它不需要了解接收设备的注册令牌?

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

【问题讨论】:

    标签: android firebase firebase-cloud-messaging


    【解决方案1】:

    所以大概它不需要知道接收设备的注册令牌?

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

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

    在 Android 中,您只需调用

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

    为设备订阅主题。 here 解释了我如何理解这项工作的方式,其中 FirebaseMessaging 类调用 FirebaseInstanceId 的实例并(可能)订阅当前活动的注册令牌。

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

    AFAIK(还没遇到过),应该重新订阅对应的注册token。取决于您实施订阅的位置。

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

    【讨论】:

    • 非常感谢。所以设备不需要在订阅调用中显式传递其令牌? (我认为确实如此,但也许那是 GCM,而不是 FCM)。
    • @AndrewStephens 不。只需从客户端调用subscribeToTopic(),它将使用相应的令牌。干杯!
    猜你喜欢
    • 2018-06-17
    • 2017-09-07
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    • 2017-02-24
    • 2016-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多