我們的目標是確保透過 FCM 傳送的每則訊息都能順利送達。不過,傳送每則訊息有時會導致整體使用者體驗不佳。在其他情況下,我們需要提供界線,確保 FCM 為所有傳送者提供可擴充的服務。本節所述的限制和配額類型,有助於我們平衡這些重要因素。
下游訊息節流
HTTP v1 API 針對下游訊息傳送作業,導入了以專案為單位、以分鐘為單位的配額。每分鐘 60 萬則訊息的預設配額,可滿足超過 99% 的FCM開發人員需求,同時確保系統穩定性,並將尖峰專案的影響降至最低。
流量模式出現尖峰可能會導致配額超出錯誤。如果超出配額,系統會提供 HTTP 狀態碼 429 RESOURCE_EXHAUSTED (「QUOTA_EXCEEDED」),直到下一分鐘配額重新填滿為止。過載情況也可能傳回 429 回應,因此強烈建議您根據已發布的建議處理 429 回應。
注意事項:
- 下游配額是衡量郵件,而非要求。
- 系統會計算用戶端錯誤 (HTTP 狀態碼 400-499),但不包括 429。
- 配額是以每分鐘為單位,但這些分鐘數並非以時鐘時間為準。
監控配額
您可以在 Google Cloud 控制台中查看配額、用量和錯誤:
前往 Google Cloud 控制台。
選取「API 和服務」。
從表格清單中選取「Firebase 雲端通訊 API」。
選取「配額與系統限制」。
申請提高配額
申請提高配額前,請確認下列事項:
- 每天至少有 5 分鐘的連續時間,用量達到配額的 80% 以上。
- 用戶端錯誤率低於 5%,尤其是在流量高峰期間。
- 您遵循大量傳送訊息的最佳做法。
如符合上述條件,您可以在 Google Cloud 控制台 中提交配額增量要求,最多可增加 25%,方法如下:
FCM會盡力滿足要求 (但無法保證會增加)。
如果即將推出產品或舉辦臨時活動,需要更多下游訊息配額,請透過 Firebase 支援服務提出配額增加要求。請至少提前 15 天提出要求,以便我們有充足時間處理。如果要求大量增加配額 (每分鐘超過 1,800 萬則訊息),請至少提前 30 天提出要求。我們每年只會核准 2 項臨時配額活動,且全年臨時配額的總時長不得超過 30 天。推出產品和舉辦特別活動的要求仍須符合用戶端錯誤率和最佳做法規定。
詳情請參閱 FCM 配額。
主題訊息限制和扇出節流
詳情請參閱「主題訊息傳送配額與限制」。
可收合訊息節流
如可收合訊息所述,可收合訊息是沒有內容的通知,設計目的是要彼此收合。如果開發人員太常對應用程式重複傳送相同訊息,我們會延遲傳送訊息,以減少對使用者電池的影響。
舉例來說,如果您對單一裝置傳送大量新的電子郵件同步要求,系統可能會延後幾分鐘再處理下一個電子郵件同步要求,讓裝置以較低的平均速率同步處理。這項限速措施嚴格來說是為了減少對使用者電池的影響。
如果您的用途需要高爆量傳送模式,則不可摺疊訊息可能是合適的選擇。對於這類訊息,請務必在訊息中加入內容,以減少電池耗電量。
我們將可收合訊息的數量限制為每個裝置每款應用程式 20 則,每 3 分鐘可補充 1 則訊息。
單一裝置的訊息傳送速率上限
在 Android 裝置上,每分鐘最多可傳送 240 則訊息,每小時最多可傳送 5,000 則訊息。這個高門檻是為了允許短期流量爆增,例如使用者在即時通訊中快速互動時。這項限制可防止傳送邏輯發生錯誤,導致裝置電量意外耗盡。
如果傳送速率超過 APNs 限制,iOS 會傳回錯誤。