本頁面提供 Cloud Messaging 的疑難排解說明,並解答常見問題。
通知撰寫工具和 FCM 有何不同?
Firebase Cloud Messaging 透過用戶端 SDK 和 HTTP 伺服器通訊協定,提供完整的訊息功能。如果部署作業的訊息傳送需求較為複雜,FCM 就是合適的選擇。
通知撰寫器是以 Firebase Cloud Messaging 為基礎建構的輕量型無伺服器訊息解決方案。通知撰寫器提供簡單易用的圖形化控制台,並減少編碼需求,讓使用者傳送訊息來重新吸引及留住使用者、促進應用程式成長,並支援行銷廣告活動。
功能 |
|
通知編輯器 |
Cloud Messaging |
目標 |
單一裝置 |
|
|
|
已訂閱主題的用戶端 (例如天氣) |
|
|
|
預先定義使用者區隔中的用戶端 (應用程式、版本、語言) |
|
|
|
指定 Analytics 目標對象中的用戶端 |
|
|
|
裝置群組中的用戶端 |
|
|
|
從用戶端到伺服器的上游 |
|
|
訊息類型 |
通知最多 2 KB |
|
|
|
最多 4 KB 的資料訊息 |
|
|
廣告放送 |
立即 |
|
|
|
未來用戶端裝置的當地時間 |
|
|
數據分析 |
內建通知分析集合與漏斗分析 |
|
|
使用 FCM 時,是否需要使用其他 Firebase 服務?
您可以將 Firebase Cloud Messaging 做為獨立元件使用,不必搭配其他 Firebase 服務。
為什麼目標裝置似乎無法接收訊息?
如果裝置似乎未成功接收訊息,請先檢查以下兩個可能原因:
處理通知訊息的前景訊息。用戶端應用程式必須新增訊息處理邏輯,才能在應用程式位於裝置前景時處理通知訊息。請參閱 iOS 和 Android 的詳細說明。
網路防火牆限制。如果貴機構的防火牆會限制網際網路的流量,您必須設定防火牆,允許與 FCM 建立連線,Firebase Cloud Messaging 用戶端應用程式才能接收訊息。需要開啟的通訊埠如下:
FCM 通常使用 5228,但有時會使用 5229 和 5230。
FCM 不會提供特定 IP,因此請查看 Google ASN 15169 所列的 IP 區塊,並允許防火牆接受對外連線至區塊中的所有 IP 位址。
為什麼 Android 應用程式中沒有呼叫 onMessageReceived
?
應用程式在背景執行時,系統匣會顯示通知訊息,且不會呼叫 onMessageReceived
。如果是含有資料酬載的通知訊息,系統匣會顯示通知訊息,且使用者輕觸通知時啟動的意圖可擷取通知訊息隨附的資料。
詳情請參閱「接收及處理訊息」。
為什麼我的應用程式在註冊 FCM 時收到「Invalid argument for the given fid」?
FID (Firebase 安裝 ID) 是應用程式執行個體的 ID。如果應用程式執行個體的安裝資料是從備份還原,FCM 就會傳回這項錯誤,表示 FID 已由其他應用程式執行個體佔用,因此目前的應用程式執行個體無法使用 FID 向 FCM 註冊。
建議開發人員在應用程式中採取下列做法:
- 排除備份中的 Firebase 安裝資料。Firebase 安裝資料會儲存在
PersistedInstallation....json
檔案中。檔案名稱是應用程式的常數,例如 <exclude domain="file" path="PersistedInstallation....json"
/>
- 如果收到「Invalid argument for the given fid」錯誤,請刪除
PersistedInstallation....json
檔案。下次應用程式向 FCM 註冊時,系統會建立新的 FID。
Apple 宣布將淘汰 APNs 的舊版二進位通訊協定。我需要做些什麼嗎?
否。Firebase Cloud Messaging 已在 2017 年改用以 HTTP/2 為基礎的 APNs 通訊協定。
如果您使用 FCM 將通知傳送至 iOS 裝置,則無須採取任何行動。
FCM 配額與限制
如何在 2 分鐘內通知大量顧客?
我們無法支援這個用途。你必須在 5 分鐘內分散流量。
我的應用程式會通知使用者事件,且這些訊息必須立即傳送,才能支援我的商業模式。我可以取得更多配額嗎?
很抱歉,我們無法因此核准配額增加要求。您必須在 5 分鐘內分散流量,避免流量暴增。
我的訊息與預定活動有關。如何在一小時開始時傳送所有流量?
建議您在活動開始前至少 5 分鐘傳送通知。或者,傳送資料訊息並實作平台類似 onMessageReceived
處理常式的項目,預先排定本機通知。
429 錯誤對我和我的商家來說很難處理。我可以申請豁免或更多配額,避免收到 429 錯誤嗎?
我們瞭解配額限制可能會造成不便,但配額對於維持服務穩定性至關重要,因此無法提供豁免。使用重試機制正確處理 429 錯誤。
配額提高要求需要多久時間才能獲准?
配額增加要求取決於 FCM 的使用情形。無論如何,我們會在幾個工作天內回覆您。在某些情況下,我們可能會針對您使用 FCM 的方式和各種情況來回溝通,這可能會延長處理時間。如果符合所有規定,大多數要求會在 2 週內處理完畢。
我可以為臨時活動取得更多配額嗎?
如要支援最多 1 個月的活動,可以申請額外配額。
請至少在活動開始前 1 個月提出要求,並清楚說明活動開始和結束時間,FCM會盡一切努力滿足要求。如果獲得配額增加的許可,系統會在活動結束日期後還原配額。
我目前的配額是否會變更?
Google 不會輕易變更配額,但為了保護系統完整性,我們可能會視需要調整配額。Google 會盡可能提前通知您這類異動。請更新 Cloud MSA 聯絡人,提高收到服務公告的機率。