根據發布/訂閱模式,FCM 主題訊息可讓您向已選擇加入特定主題的多部裝置傳送訊息。您可以視需要撰寫主題訊息,而 FCM 會負責處理路由,並將訊息可靠地傳送至正確的裝置。
舉例來說,當地潮汐預測應用程式的使用者可以選擇訂閱「潮流警報」主題,並接收特定區域最佳鹽水釣魚條件的通知。體育應用程式的使用者可以訂閱喜愛球隊的即時比數自動更新功能。
關於主題,請注意以下幾點:
主題訊息最適合用於天氣或其他公開資訊等內容。
主題訊息是針對總處理量而非延遲進行最佳化。如要安全地將訊息傳遞給單一裝置或一小群裝置,請指定訊息至註冊權杖,而非主題。
如果您需要向每位使用者的多個裝置傳送訊息,請考慮在這些用途中使用裝置群組訊息傳送。
主題訊息支援每個主題的無限訂閱項目。不過,FCM 會在下列情況下實施限制:
- 一個應用程式執行個體最多只能訂閱 2,000 個主題。
- 如果您使用批次匯入功能來訂閱應用程式執行個體,每個要求最多只能包含 1,000 個應用程式執行個體。
- 每個專案的新訂閱頻率都有限制。如果您在短時間內傳送過多訂閱要求,FCM 伺服器會傳回
429 RESOURCE_EXHAUSTED
回應 (「配額超出」)。以指數輪詢方式重試。
讓用戶端應用程式訂閱主題
用戶端應用程式可以訂閱任何現有主題,也可以建立新主題。當用戶端應用程式訂閱新的主題名稱 (您的 Firebase 專案尚未使用的主題名稱) 時,系統會在 FCM 中建立名為該名稱的新主題,任何用戶端隨後都能訂閱該主題。
如要訂閱主題,請使用主題名稱呼叫 subscribeToTopic()
。這個方法會傳回 Future
,這會在訂閱成功時解析:
await FirebaseMessaging.instance.subscribeToTopic("topic");
如要取消訂閱,請呼叫 unsubscribeFromTopic()
並提供主題名稱。
網路用戶端不支援 subscribeToTopic()
和 unsubscribeFromTopic()
。如要瞭解如何管理網頁使用者的訂閱項目,請參閱「在網頁/JavaScript 中傳送訊息至主題」。
後續步驟
- 瞭解如何傳送主題訊息。
- 瞭解如何管理伺服器上的主題訂閱。