我想知道是否有一种方法可以测试您是否订阅了 Android 方面的主题。
基本上,我希望所有设备都会在安装过程中(当设备首次获取 token 时)订阅一个主题。然而,设备总是有可能订阅失败。 FCM注册 token 应该长期安装在设备上,因此,在没有清除数据、卸载/重新安装等操作的情况下,不应再次调用onTokenRefresh()方法。
我的想法是测试设备是否订阅了我的 MainActivity 中的主题,如果没有,则尝试再次订阅。如果订阅失败,则获取新的token并重试,等等
@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");
所以,我可以订阅和取消订阅,但是如何检查设备是否订阅了某个主题?我做了我应有的谷歌搜索,但不幸的是找不到任何东西。
我非常感谢任何/所有帮助。谢谢!
最佳答案
目前无法检查客户端是否订阅了某个主题。
subscribeToTopic 的行为是它会立即订阅指定的主题,如果失败,它会自行重试(除非您的应用程序被终止)。看我的回答here .
我认为仅仅为了确保 subscribeToTopic
而强制调用 onTokenRefresh
太过分了。如果需要,您可以简单地在初始 Activity 中调用它,这样,每次应用程序启动时,它都会发送订阅请求。
关于java - Android/Firebase - 检查您是否订阅了主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59418519/