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