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