获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

设置和管理消息优先级

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

在 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安排一个任务以在后台处理该任务。