我想知道是否有办法测试你是否订阅了android方面的主题。
基本上,我 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");
所以,我可以订阅和取消订阅,但如何检查设备是否订阅了某个主题?不幸的是,我公平地分享了谷歌搜索,也找不到任何东西。
我非常感谢任何/所有的帮助。谢谢!
答案 0 :(得分:4)
目前无法检查客户端是否订阅了某个主题。
subscribeToTopic
的行为是它会立即订阅指定的主题,如果失败,它会自行重试(除非您的应用程序被杀死)。请参阅我的回答here。
我认为强制onTokenRefresh
调用只是为了确保subscribeToTopic
过多。如果你愿意的话,你可以简单地在初始活动中调用它,这样,每次应用程序启动时,它都会发送订阅请求。