透過 FCM,您可以將兩種類型的訊息傳送至用戶端應用程式:
- 通知訊息與「顯示訊息」類似,FCM SDK 會自動處理。
- 資料訊息,由用戶端應用程式處理。
通知訊息包含一組預先定義且使用者可見的鍵,並可包含選用的資料酬載。相較之下,資料訊息只包含您定義的自訂鍵/值組合。兩種訊息類型的酬載大小上限皆為 4096 個位元組,但從 Firebase 控制台傳送訊息時除外,因為控制台會強制執行 1000 個字元的限制。
使用情境 | 如何傳送 | |
---|---|---|
通知訊息 | FCM SDK 在背景執行時,會代表用戶端應用程式在使用者裝置上顯示訊息。否則,如果應用程式在收到通知時於前景執行,應用程式的程式碼會決定行為。 |
|
資料訊息 | 用戶端應用程式負責處理資料訊息。資料訊息只包含自訂鍵/值組合,不含保留的鍵名 (詳情請參閱下文)。 | 在信任的環境 (例如
Cloud Functions
或應用程式伺服器) 中,使用 Firebase Admin SDK 或 HTTP v1 API。
在傳送要求中,設定 data 鍵。
|
如果想讓 FCM SDK 在應用程式於背景執行時自動顯示通知,可以使用通知訊息。FCM 可以傳送通知訊息,並視需要加入資料酬載。在這種情況下,FCM 會顯示通知酬載,而用戶端應用程式會處理資料酬載。
如要使用自己的用戶端應用程式程式碼處理訊息,可以使用資料訊息。
通知訊息
您可以使用 Firebase 控制台、 Firebase Admin SDK 或 FCM HTTP v1 API 傳送通知訊息。Firebase 控制台提供以數據分析為基礎的 A/B 測試,協助您改善通知訊息。
如要使用 Firebase Admin SDK 或 FCM HTTP v1 API 傳送通知訊息,請使用預先定義的通知訊息鍵/值選項組合,設定 notification
鍵。您可以使用下列範例,在即時通訊應用程式中設定通知訊息格式
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
}
}
}
應用程式在背景運作時,通知訊息會傳送到通知匣。如果是前景應用程式,訊息會由回呼函式處理。
如需可用於建構通知訊息的預先定義鍵完整清單,請參閱 FCM HTTP v1 API 通知物件參考文件。
資料訊息
您可以自行決定如何使用 FCM 酬載 data
實作所選的加密配置。請確認自訂鍵/值組合中沒有任何保留字。保留字包括 from
、message_type
,或任何以 google.
、gcm.
或 gcm.notification.
開頭的字詞。
以下範例顯示頂層或通用資料欄位的使用情形,由接收訊息的所有平台上的用戶端解讀。在每個平台上,用戶端應用程式都會透過回呼函式接收資料酬載
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data":{
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
}
}
}