2016-12-21 196 views
1

我從來沒有使用FCM之前(或GCM),但我尋找到寫一個應用程序,這將涉及發佈消息到多個設備,和「主題」似乎是一個不錯的辦法。發佈/訂閱FCM主題

從我到目前爲止閱讀文檔,我的應用程序服務器將消息發佈到一個名爲話題,所以想必它並不需要了解註冊標記的接收設備?

我相信一個註冊令牌必須訂閱主題時指定,所以我想接收設備仍然必須請求令牌纔可以訂閱。當令牌過期時會發生什麼 - 應用程序是否必須使用新令牌再次訂閱該主題?

回答

1

因此假設它不需要知道收件人設備的註冊令牌?

不,它沒有。但我強烈建議您保存註冊令牌,以便將來可以使用Diagnostics tool跟蹤它們。

當令牌過期時會發生什麼 - 應用程序是否必須使用新令牌再次訂閱主題?

在Android中,你只需要調用

FirebaseMessaging.getInstance().subscribeToTopic(<topic_name_here>); 

到設備訂閱一個主題。我如何理解這個工作進行了說明here,其中FirebaseMessaging類調用FirebaseInstanceId的實例和方式(大概)認購當前活動的註冊標記。

根據@DiegoGiorgini's answer here,如果令牌爲,則刷新將維護主題訂閱。

AFAIK(還沒有遇到它尚未),相應的註冊令牌應該被重新訂閱。取決於您實施訂閱的位置。

我建議有它在應用程序本身的開始。如果您的應用服務器上有主題列表(應該有多個主題),那麼更好,如果需要,也許可以使用InstanceID API進行重新訂閱。

+0

非常感謝。所以設備不需要在調用中顯式傳遞它的令牌來訂閱? (我認爲它確實,但也許是GCM,而不是FCM)。 –

+1

@AndrewStephens沒有。只需從客戶端調用'subscribeToTopic()',它就會使用相應的標記。乾杯! –