無法摺疊的訊息表示系統會將每則訊息個別傳送至裝置。不可收合的訊息會提供實用內容。例如,向行動應用程式傳送不含內容的「ping」訊息,要求應用程式與伺服器聯絡以擷取資料。
不可收合的訊息通常是即時通訊訊息或重要訊息。在 Android 裝置上,系統最多可儲存 100 則未收合的訊息。如果達到上限,系統會捨棄所有儲存的訊息。裝置恢復連線後,會收到一則特殊訊息,指出已達到上限。應用程式接著通常會向應用程式伺服器要求完整同步,藉此處理這種情況。
可收合訊息是指尚未傳送至裝置的訊息,可能會被新訊息取代。
可摺疊訊息的常見用途是通知行動應用程式從伺服器同步處理資料。舉例來說,運動應用程式會為使用者提供最新比分。只有最近的訊息才重要。
如要在 Android 上將訊息標示為可收合,請在訊息酬載中加入 collapse_key
參數。根據預設,摺疊鍵是 Firebase 控制台中註冊的應用程式套件名稱。FCM 伺服器可同時為每個裝置儲存四則不同的可摺疊訊息,每則訊息都有不同的摺疊鍵。如果超過這個數字,FCM 只會保留四個摺疊鍵,且不會決定保留哪些鍵。
根據預設,沒有酬載的主題訊息會摺疊。通知訊息一律可收合,且會忽略 collapse_key
參數。
我該使用哪一個?
從效能角度來看,如果應用程式不需要使用不可收合的訊息,建議採用可收合的訊息。不過,如果您使用可收合訊息,請注意 FCM 在任何時間,每個註冊權杖最多只能使用四個不同的收合鍵。FCM
使用情境 | 如何傳送 | |
---|---|---|
不可收合 | 每則訊息對用戶端應用程式都很重要,因此必須傳送。 | 除了通知訊息外,所有訊息預設都無法收合。 |
可收合 | 如果較新的訊息會導致較舊的相關訊息與用戶端應用程式無關,FCM就會取代較舊的訊息。例如過時的通知訊息。 | 在訊息要求中設定適當的參數:
|