Flutter 上的主題訊息

根據發布/訂閱模式,FCM 主題訊息可讓您向已選擇加入特定主題的多部裝置傳送訊息。您可以視需要撰寫主題訊息,而 FCM 會負責處理路由,並將訊息可靠地傳送至正確的裝置。

舉例來說,當地潮汐預測應用程式的使用者可以選擇訂閱「潮流警報」主題,並接收特定區域最佳鹽水釣魚條件的通知。體育應用程式的使用者可以訂閱喜愛球隊的即時比數,以便自動接收最新消息。

關於主題,請注意以下幾點:

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

  • 主題訊息是針對總處理量而非延遲進行最佳化。如要快速且安全地傳送至單一裝置或小型裝置群組,請將訊息指定為註冊權杖,而非主題。

  • 如果您需要向每位使用者的多個裝置傳送訊息,請考慮在這些用途中使用裝置群組訊息傳送

  • 主題訊息支援每個主題的無限訂閱項目。不過,FCM 會在下列情況下實施限制:

    • 一個應用程式執行個體最多只能訂閱 2,000 個主題。
    • 如果您使用批次匯入功能來訂閱應用程式執行個體,每個要求最多只能包含 1, 000 個應用程式執行個體。
    • 每個專案的新訂閱頻率都有頻率限制。如果您在短時間內傳送過多訂閱要求,FCM 伺服器會傳回 429 RESOURCE_EXHAUSTED 回應 (「配額超出」)。以指數輪詢方式重試。

讓用戶端應用程式訂閱主題

用戶端應用程式可以訂閱任何現有主題,也可以建立新主題。當用戶端應用程式訂閱新的主題名稱 (在您的 Firebase 專案中不存在) 時,系統會在 FCM 中建立該名稱的新主題,之後任何用戶端都可以訂閱該主題。

如要訂閱主題,請呼叫 subscribeToTopic() 並提供主題名稱。這個方法會傳回 Future,在訂閱成功時會解析:

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

如要取消訂閱,請呼叫 unsubscribeFromTopic() 並提供主題名稱。

網頁用戶端不支援 subscribeToTopic()unsubscribeFromTopic()。如要瞭解如何管理網頁使用者的訂閱項目,請參閱「在網頁/JavaScript 中傳送訊息至主題」。

後續步驟