Firebase消息传递Android SDK - 在令牌刷新后重新订阅主题

时间:2018-03-07 15:41:31

标签: android firebase firebase-cloud-messaging

我正在开发使用 FCM主题的SDK。每当刷新实例ID Token时,我都会再次订阅用户之前订阅的每个主题(我测试过并发现 Firebase SDK 不会自行管理订阅更新,如果我错了,请纠正我。

问题是如果我没有在每次调用Firebase消息传递实例之间放置一个`Thread.sleep()`,主题订阅就会失败。

有没有人试图做类似的事情并得到不同的结果?澄清,  我知道使用终点通过 Google Instance ID 注册新令牌,而不是暂时使用它。
我正在使用Firebase 11.8.0 SDK。

public void refreshTopicsRegistrations() {
    Set<String> registeredTopics = topicsPreferences.getAll().keySet();
    new Thread(() -> {
        try {
            for (String topic : registeredTopics) {
                FirebaseMessaging.getInstance().unsubscribeFromTopic(topic);
                Thread.sleep(1500);
                FirebaseMessaging.getInstance().subscribeToTopic(topic);
                Thread.sleep(1500);
            }
        } catch (InterruptedException e) {
            Log.d("topic-refresh", e.getMessage());
        }
    }).start();
}

0 个答案:

没有答案