1

我想知道是否有方法来测试,看看您是否订阅了一些有关android事物的主题。Android/Firebase - 检查您是否订阅了主题

基本上,我是HOPING所有设备都会在安装期间订阅一个主题,当令牌首次被设备获取时。但是,设备始终有可能无法订阅。 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"); 

所以,我可以订阅和取消订阅,但我要如何检查设备订购到主题?不幸的是,我在Google上做了一些公平的分享,但找不到任何东西。

我将不胜感激任何/所有的帮助。谢谢!

回答

1

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

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

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