Google 會運用 AI 技術將內容翻譯成你偏好的語言,但可能會出錯。
Firebase 雲端通訊疑難排解與常見問題
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
本頁面提供 Cloud Messaging 的疑難排解說明,並解答常見問題。
通知撰寫工具和 FCM 有何不同?
Firebase Cloud Messaging 透過用戶端 SDK 和 HTTP 伺服器通訊協定,提供完整的訊息功能。如果部署作業的訊息傳送需求較複雜,FCM 就是合適的選擇。
通知撰寫工具是以 Firebase Cloud Messaging 為基礎建構的輕量型無伺服器訊息解決方案。通知撰寫器提供簡單易用的圖形控制台,並減少編碼需求,讓使用者傳送訊息,重新吸引及留住使用者、促進應用程式成長,並支援行銷廣告活動。
| 功能 |
|
通知撰寫工具 |
Cloud Messaging |
| 目標 |
單一裝置 |
|
|
|
已訂閱主題的用戶端 (即天氣) |
|
|
|
預先定義使用者區隔中的用戶端 (應用程式、版本、語言) |
|
|
|
指定分析目標對象中的用戶端 |
|
|
|
裝置群組中的用戶端 |
|
|
|
從用戶端到伺服器的上游 |
|
|
| 訊息類型 |
通知最多 2KB |
|
|
|
資料訊息最多 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。如果是含有資料酬載的通知訊息,系統匣會顯示通知訊息,使用者輕觸通知時啟動的意圖,則可擷取通知訊息隨附的資料。
詳情請參閱「接收及處理訊息」。
從備份還原後,為什麼我傳送訊息給有效應用程式執行個體時會收到 404 錯誤?
FID (Firebase 安裝 ID) 是應用程式執行個體的 ID。根據預設,系統會備份及還原 Firebase 安裝資料。因此在還原的情況下,還原的應用程式例項和原始應用程式例項會共用相同的 FID。由於 FCM 每個 FID 只會儲存一個權杖,因此如果原始應用程式例項和還原的應用程式例項都在使用中,當其中一個應用程式例項向 FCM 註冊時,另一個應用程式例項的權杖就會遭到移除,導致發生 404 錯誤。
建議開發人員在應用程式中採取下列做法:
- 排除備份中的 Firebase 安裝資料。Firebase 安裝資料會儲存在
PersistedInstallation....json 檔案中。應用程式的檔案名稱是常數。舉例來說,<exclude domain="file" path="PersistedInstallation.W0R...GQ.json"
/>
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 聯絡人,確保能收到服務公告。
FCM 舊版 API 淘汰
伺服器端 API 將於 2026 年 9 月淘汰
哪些 API 和功能已淘汰並將停用?如果我正在使用這些 API,該怎麼辦?
所有 InstanceId 伺服器 API 和裝置群組功能都已淘汰,並將於 2027 年 9 月 29 日停用。下表詳細說明已淘汰的 API/功能,以及您必須採取的行動。
| API 名稱
|
API 端點
|
預定用途
|
顧客影響
|
敬請採取行動
|
| InstanceId info API
|
https://iid.googleapis.com/iid/info
|
取得與 InstanceId / FCM 權杖相關的資訊
|
2027 年 9 月 29 日後,向這個 API 提出的請求都會失敗。
|
如果客戶使用 API 驗證權杖,請使用 FCM V1 傳送 API,並將 validate_only 設為 true。
如果客戶使用 API 取得主題訂閱資訊,請改用新的主題訂閱 API。
|
| InstanceId 主題訂閱 API
|
https://iid.googleapis.com/iid/v1/…/rel/topics
https://iid.googleapis.com/iid/v1:batchAdd
https://iid.googleapis.com/iid/v1:batchRemove
|
透過舊版主題訂閱 API 將權杖訂閱至主題。
|
2027 年 9 月 29 日之後,對這些 API 提出的要求都會失敗。
|
遷移至FCM主題訂閱伺服器 API,以訂閱及取消訂閱主題。 |
| InstanceId 批次匯入 API
|
https://iid.googleapis.com/iid/v1:batchImport
|
在伺服器端以批次方式為 iOS 建立 FCM 權杖。
|
2027 年 9 月 29 日後,向這個 API 提出的請求都會失敗。
系統不支援從伺服器端的 APNs 權杖建立 FCM 註冊。
|
您可以使用 Apple 的 APNs 服務,透過 APNs 權杖傳送通知。
如要享有 FCM 提供的額外福利,請將應用程式與 FCM iOS SDK 整合,在用戶端建立 FCM 註冊。
|
| 裝置群組管理 API
|
https://fcm.googleapis.com/fcm/notification
https://fcm.googleapis.com/gcm/notification
https://fcm.googleapis.com/iid/notification
https://fcm.googleapis.com/notification
|
新增 / 移除/ 擷取裝置群組成員。
|
2027 年 9 月 29 日後,向這個 API 提出的請求都會失敗。
|
如要停用這項功能,請參閱這份指南。
您仍可傳送訊息給個別FCM註冊項目,而非群組權杖。
|
| 傳送給裝置群組
|
https://fcm.googleapis.com/v1/projects/…/messages:send
|
使用群組 notification_key 將訊息傳送至裝置群組。
|
這項 API 仍可運作,但 2027 年 9 月 29 日後將不再支援裝置群組權杖。
|
如果我使用 Firebase Admin SDK 管理主題訂閱項目,是否會受到淘汰影響?What should I do?
如果您使用舊版 Firebase Admin SDK 管理主題訂閱項目,就會受到這項淘汰作業的影響。
您需要將 Firebase Admin SDK 升級至下列版本:
| 平台
|
受影響的 Admin SDK 版本
|
要升級的 Admin SDK 版本
|
| Node.js
|
<=14.4.0
|
>=14.5.0
|
| Python
|
<=7.6.0
|
>=7.7.0
|
| Java
|
<=9.10.0
|
即將推出
|
| Go
|
<=4.21.0
|
>=4.22.0
|
| .NET
|
<=3.6.0
|
即將推出
|
2027 年 9 月 29 日前,我會看到服務降級嗎?
不會。您有 12 個月的時間從已淘汰的 API 遷移至替代方案,服務不會降級。強烈建議您盡早規劃遷移作業,以免受到停用影響。
2027 年 9 月 29 日後,呼叫已淘汰的 API 時應會收到錯誤訊息。
新使用者能否在停用前使用已淘汰的 API/功能?
新使用者可在 2027 年 1 月 1 日前,使用已淘汰的 API/功能。
2027 年 1 月 1 日後,新使用者將無法使用已淘汰的 API。
使用已淘汰 API 的使用者可繼續使用這些 API,直到 2027 年 9 月 29 日為止。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2026-09-24 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2026-09-24 (世界標準時間)。"],[],[]]