Firebase 雲端通訊訊息類型

透過 FCM,您可以將兩種類型的訊息傳送至用戶端應用程式:

  • 通知訊息與「顯示訊息」類似,FCM SDK 會自動處理。
  • 資料訊息,由用戶端應用程式處理。

通知訊息包含一組預先定義且使用者可見的鍵,並可包含選用的資料酬載。相較之下,資料訊息只包含您定義的自訂鍵/值組合。兩種訊息類型的酬載大小上限皆為 4096 個位元組,但從 Firebase 控制台傳送訊息時除外,因為控制台會強制執行 1000 個字元的限制。

使用情境 如何傳送
通知訊息 FCM SDK 在背景執行時,會代表用戶端應用程式在使用者裝置上顯示訊息。否則,如果應用程式在收到通知時於前景執行,應用程式的程式碼會決定行為。
  1. Cloud Functions 或應用程式伺服器等信任環境中,使用 Firebase Admin SDKHTTP v1 API。 設定 notification 鍵。 可視需要提供資料酬載。一律可收合

    請參閱一些 顯示通知的範例,並傳送要求酬載。

  2. 使用 通知撰寫工具:輸入訊息文字、標題等,然後傳送。提供自訂資料,新增選用資料酬載。
資料訊息 用戶端應用程式負責處理資料訊息。資料訊息只包含自訂鍵/值組合,不含保留的鍵名 (詳情請參閱下文)。 在信任的環境 (例如 Cloud Functions 或應用程式伺服器) 中,使用 Firebase Admin SDKHTTP v1 API。 在傳送要求中,設定 data 鍵。

如果想讓 FCM SDK 在應用程式於背景執行時自動顯示通知,可以使用通知訊息。FCM 可以傳送通知訊息,並視需要加入資料酬載。在這種情況下,FCM 會顯示通知酬載,而用戶端應用程式會處理資料酬載。

如要使用自己的用戶端應用程式程式碼處理訊息,可以使用資料訊息。

通知訊息

您可以使用 Firebase 控制台 Firebase Admin SDKFCM HTTP v1 API 傳送通知訊息。Firebase 控制台提供以數據分析為基礎的 A/B 測試,協助您改善通知訊息。

如要使用 Firebase Admin SDKFCM HTTP v1 API 傳送通知訊息,請使用預先定義的通知訊息鍵/值選項組合,設定 notification 鍵。您可以使用下列範例,在即時通訊應用程式中設定通知訊息格式

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification":{
      "title":"Portugal vs. Denmark",
      "body":"great match!"
    }
  }
}

應用程式在背景運作時,通知訊息會傳送到通知匣。如果是前景應用程式,訊息會由回呼函式處理。

如需可用於建構通知訊息的預先定義鍵完整清單,請參閱 FCM HTTP v1 API 通知物件參考文件。

資料訊息

您可以自行決定如何使用 FCM 酬載 data 實作所選的加密配置。請確認自訂鍵/值組合中沒有任何保留字。保留字包括 frommessage_type,或任何以 google.gcm.gcm.notification. 開頭的字詞。

以下範例顯示頂層或通用資料欄位的使用情形,由接收訊息的所有平台上的用戶端解讀。在每個平台上,用戶端應用程式都會透過回呼函式接收資料酬載

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "data":{
      "Nick" : "Mario",
      "body" : "great match!",
      "Room" : "PortugalVSDenmark"
    }
  }
}