Flutter 上的主題訊息

根據發布/訂閱模型,FCM 主題訊息功能可讓您將訊息傳送至已選擇加入特定主題的多部裝置。您可以根據需要撰寫主題訊息,而 FCM 會妥善處理將訊息轉送到正確的裝置。

舉例來說,當地潮汐預測應用程式的使用者可以選擇「潮汐測報」主題,並在指定地區收到最佳海水釣魚情況的通知。運動應用程式的使用者可以訂閱喜愛球隊的即時遊戲分數自動更新。

使用主題時,請注意下列事項:

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

  • 主題訊息針對處理量進行最佳化,而非延遲時間。如要安全地將訊息傳遞給單一裝置或一小群裝置,請指定訊息至註冊權杖,而非主題。

  • 如果您需要「每位使用者」傳送訊息給多部裝置,請考慮配合這些用途使用裝置群組訊息

  • 每個主題的訊息功能支援無限次訂閱。然而,FCM 在以下領域設有限制:

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

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

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

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

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

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

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

後續步驟