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是太多。如果需要,您可以簡單地在初始活動中調用它,這樣,每次應用程序啓動時,都會發送訂閱請求。