获取我们在 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 资源管理器中探索它

故障排除

  • 确保您的应用程序实例已启用通知。如果用户禁用了您应用的通知权限,则您的任何通知都不会发布,因此您的消息将被取消优先级。在将高优先级消息发送到应用程序实例之前,您应该验证通知是否已启用

  • 在发布通知之前不要打电话回家。由于一小部分 Android 移动用户使用高延迟网络,因此请避免在显示通知之前打开与服务器的连接。在允许的处理时间结束之前回调到服务器对于高延迟网络上的用户来说可能是有风险的。相反,将通知内容包含在 FCM 消息中并立即显示。如果您需要在 Android 上同步其他应用内内容,您可以使用WorkManager安排任务在后台处理。