Flutter 上的主題訊息傳遞

基於發布/訂閱模型,FCM 主題訊息傳遞可讓您向選擇加入特定主題的多個裝置發送訊息。您根據需要撰寫主題訊息,FCM 負責路由並將訊息可靠地傳遞到正確的裝置。

例如,本地潮汐預報應用程式的使用者可以選擇「潮流警報」主題,並接收指定區域最佳鹹水捕魚條件的通知。體育應用程式的用戶可以訂閱他們最喜歡的球隊的即時比賽比分的自動更新。

關於主題需要記住的一些事項:

  • 主題訊息最適合天氣或其他公開資訊等內容。

  • 主題訊息針對吞吐量而不是延遲進行了最佳化。為了快速、安全地傳遞到單一設備或小組設備,請將訊息定位到註冊令牌,而不是主題。

  • 如果您需要向每個使用者的多個裝置發送訊息,請考慮針對這些用例的裝置群組訊息傳遞

  • 主題訊息支持每個主題的無限訂閱。然而,FCM 在這些領域實施限制:

    • 一個應用實例最多可以訂閱2000個主題。
    • 如果您使用批次匯入來訂閱應用程式實例,則每個請求僅限於 1000 個應用程式實例。
    • 每個項目的新訂閱頻率受到速率限制。如果您在短時間內發送太多訂閱請求,FCM 伺服器將回應429 RESOURCE_EXHAUSTED (「超出配額」)回應。使用指數退避重試。

為客戶端應用程式訂閱主題

客戶端應用程式可以訂閱任何現有主題,也可以建立新主題。當用戶端套用訂閱新的主題名稱(您的 Firebase 專案尚不存在的主題)時,會在 FCM 中建立具有該名稱的新主題,並且隨後任何客戶端都可以訂閱它。

若要訂閱主題,請使用主題名稱呼叫subscribeToTopic() 。此方法傳回一個Future ,它在訂閱成功時解析:

await FirebaseMessaging.instance.subscribeToTopic("topic");

若要取消訂閱,請使用主題名稱呼叫unsubscribeFromTopic()

Web 用戶端不支援subscribeToTopic()unsubscribeFromTopic() 。若要了解如何管理 Web 使用者的訂閱,請參閱向 Web/JavaScript 上的主題傳送訊息

下一步