Catch up on highlights from Firebase at Google I/O 2023. Learn more

FCM 架構概述

FCM 依賴於以下一組構建、傳輸和接收消息的組件:

  1. 編寫或構建消息請求的工具。通知編輯器提供了一個基於 GUI 的選項來創建通知請求。為了完全自動化並支持所有消息類型,您必須在支持 Firebase Admin SDK 或 FCM 服務器協議的可信服務器環境中構建消息請求。此環境可以是 Cloud Functions for Firebase、App Engine 或您自己的應用服務器。

    本頁中描述的三個架構層的圖表。

  2. FCM 後端(以及其他功能)接受消息請求,通過主題執行消息扇出,並生成消息元數據(例如消息 ID)。

  3. 平台級傳輸層,它將消息路由到目標設備,處理消息傳遞,並在適當的地方應用特定於平台的配置。該傳輸層包括:

    • 適用於具有 Google Play 服務的 Android 設備的 Android 傳輸層 (ATL)
    • Apple 設備的 Apple 推送通知服務 (APNs)
    • Web 應用程序的 Web 推送協議

  4. 用戶設備上的 FCM SDK,根據應用程序的前台/後台狀態和任何相關應用程序邏輯顯示通知或處理消息。

生命週期流程

  • 註冊設備以接收來自 FCM 的消息。客戶端應用程序的實例註冊以接收消息,獲取唯一標識應用程序實例的註冊令牌。
  • 發送和接收下游消息
    • 發送一個消息。應用服務器向客戶端應用發送消息:
      1. 消息在通知編寫器或受信任的環境中編寫,消息請求被發送到 FCM 後端。
      2. FCM 後端接收消息請求,生成消息 ID 和其他元數據,並將其發送到平台特定的傳輸層。
      3. 當設備在線時,消息通過特定於平台的傳輸層發送到設備。
      4. 在設備上,客戶端應用程序接收消息或通知。