首页 文章

Android / Firebase - 检查您是否订阅了主题

提问于
浏览
5

我想知道是否有一种方法来测试你是否订阅了android方面的主题 .

基本上,我希望所有设备在安装期间订阅主题时,首先由设备获取令牌 . 但是,设备总是有可能无法订阅 . FCM注册令牌应该在设备上安装很长时间,因此,在不清除数据,卸载/重新安装等的情况下,不应再次调用onTokenRefresh()方法 .

我的想法是测试设备是否订阅了我的MainActivity中的主题,如果没有,则尝试再次订阅 . 如果订阅失败,则获取新令牌并再次尝试等 .

@Override
    public void onTokenRefresh() {
    // Get updated InstanceID token.
    String refreshedToken = FirebaseInstanceId.getInstance().getToken();
    Log.e(TAG, "Refreshed token: " + refreshedToken);

    // Subscribe to a topic
    Log.e(TAG, "Subscribing to topic");
    FirebaseMessaging.getInstance().subscribeToTopic("test");

所以,我可以订阅和取消订阅,但如何检查设备是否订阅了某个主题?不幸的是,我公平地分享了谷歌搜索,也找不到任何东西 .

我非常感谢任何/所有的帮助 . 谢谢!

1 回答

  • 4

    目前没有办法检查客户端是否订阅了主题 .

    subscribeToTopic 的行为是它会立即订阅指定的主题,如果失败,它将自行重试(除非您的应用程序被杀死) . 看到我的回答here .

    我认为强迫 onTokenRefresh 调用只是为了确保 subscribeToTopic 太多了 . 如果您愿意,您可以简单地在初始活动中调用它,这样,每次应用程序启动时,它都会发送订阅请求 .

相关问题