FCM 架構總覽
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
FCM 需要使用以下一組元件來建構、傳輸及接收訊息:
撰寫或建構訊息要求的工具。通知編輯器提供以 GUI 為基礎的選項,可用於建立通知要求。如要全面自動化並支援所有訊息類型,您必須在支援 Firebase Admin SDK 或 FCM 伺服器通訊協定的受信任伺服器環境中建立訊息要求。這個環境可以是 Cloud Functions for Firebase、App Engine 或您自己的應用程式伺服器。
FCM 後端 (和其他函式) 會接收訊息要求、透過主題執行訊息擴散,並產生訊息 ID 等訊息中繼資料。
平台層級傳輸層,可將訊息轉送至指定裝置、處理訊息傳送作業,並視情況套用平台專屬的設定。這個傳輸層包括:
- 搭載 Google Play 服務的 Android 裝置適用的 Android 傳輸層 (ATL)
- Apple 裝置適用的 Apple 推播通知服務 (APN)
網頁應用程式的網路推送通訊協定
使用者裝置上的 FCM SDK,會顯示通知,或根據應用程式的前景/背景狀態以及任何相關的應用程式邏輯處理訊息。
生命週期流程
- 註冊裝置以接收來自 FCM 的訊息。用戶端應用程式的實例會註冊以接收訊息,取得可明確識別應用程式執行個體的註冊憑證。
- 傳送及接收下游訊息。
- 傳送訊息。應用程式伺服器將訊息傳送至用戶端應用程式:
- 系統會在通知編輯器或信任的環境中撰寫訊息,並將訊息要求傳送至 FCM 後端。
- FCM 後端會收到訊息要求、產生訊息 ID 和其他中繼資料,然後將該中繼資料傳送至平台專屬的傳輸層。
- 裝置連上網路時,訊息會透過平台專屬的傳輸層傳送至裝置。
- 裝置上的用戶端應用程式會收到訊息或通知。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2024-07-02 (世界標準時間)。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"缺少我需要的資訊"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"過於複雜/步驟過多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"過時"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻譯問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/程式碼問題"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"容易理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"確實解決了我的問題"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]