Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

設置和管理消息優先級

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

在 Android 上為下游消息分配傳遞優先級有兩種選擇:正常優先級和高優先級。正常和高優先級消息的傳遞如下:

  • 正常優先。這是數據消息的默認優先級。當設備不處於睡眠狀態時,會立即傳遞正常優先級消息。當設備處於打盹模式時,可能會延遲交付以節省電池,直到設備退出打盹。對於時間敏感度較低的消息,例如新電子郵件通知、保持 UI 同步或在後台同步應用程序數據,請選擇正常傳遞優先級。

    當在 Android 上接收到請求為您的應用程序進行後台數據同步的正常優先級消息時,您可以使用WorkManager安排一個任務以在網絡可用時處理它。

  • 高優先級。 FCM 嘗試立即傳遞高優先級消息,允許 FCM 在必要時喚醒睡眠設備並運行一些有限的處理(包括非常有限的網絡訪問)。高優先級消息通常會導致用戶與您的應用或其通知進行交互。

使用 Android 的高優先級消息

Android 上的高優先級消息適用於時間敏感、用戶可見的內容,並且應該導致面向用戶的通知。如果 FCM 檢測到消息不會導致面向用戶的通知的模式,則您的消息的優先級可能會降低為正常優先級。 FCM 使用 7 天的消息行為來確定是否取消消息的優先級;它為您的應用程序的每個實例獨立做出此決定。如果作為對高優先級消息的響應,通知以用戶可見的方式顯示,那麼您未來的高優先級消息將不會被取消優先級。這適用於通知是由 FCM SDK 通過通知消息顯示,還是由開發人員生成的通知通過數據消息顯示

在 Android 上測量消息的優先級

  • 個人消息。在傳遞時,您可以通過比較從 getPriority() 傳遞的優先級與從getOriginalPriority()傳遞的優先級來確定單個郵件是否被取消優先級

  • 所有消息。 FCM Aggregate Delivery Data API可以報告您發送給 Android 的所有消息中有多少百分比被取消優先級。匯總數據報告中可能會省略一些消息,但總體而言,它們應該提供消息去優先級率的全局視圖。有關查詢 API 的更多信息和示例代碼,請參閱我們關於聚合交付數據的文章;也可以從API explorer進行探索

故障排除

  • 確保您的應用實例已啟用通知。如果用戶禁用了您應用的通知權限,則不會發布您的任何通知,因此,您的消息將被取消優先級。您應該在將高優先級消息發送到應用程序實例之前驗證是否啟用了通知

  • 在發布通知之前不要打電話回家。由於一小部分 Android 移動用戶使用高延遲網絡,因此請避免在顯示通知之前打開與服務器的連接。在允許的處理時間結束之前回調服務器對於高延遲網絡上的用戶可能會有風險。相反,在 FCM 消息中包含通知內容並立即顯示。如果您需要在 Android 上同步其他應用內內容,您可以使用WorkManager安排一個任務以在後台處理該任務。