我正在向订阅了优先级参数设置为高的一个主题的一小组设备(少于 5 个)发送推送消息
高优先级。FCM 尝试立即传递高优先级消息,允许 FCM 服务在可能的情况下唤醒睡眠设备并打开与您的应用服务器的网络连接。例如,具有即时消息、聊天或语音呼叫警报的应用程序通常需要打开网络连接并确保 FCM 将消息无延迟地传递到设备。仅当消息时间紧迫且需要用户立即交互时才设置高优先级,但请注意,与正常优先级消息相比,将消息设置为高优先级更容易消耗电池电量。
但是当我将设备置于空闲状态时,它会带来很大的延迟。在 Nougat 7.1 上延迟超过 10 分钟。这种类型的推送需要少于 10 秒的延迟。
设置time_to_live
为 0 仅解决 Marshmallow 上的问题。牛轧糖仍然失败。
所以,我只看到 3 个可能的问题原因
发送到主题的消息不能是高优先级。但是向每个设备发送独立的消息会增加应用服务器的负载。我需要从 Firebase 数据库加载新令牌,因此结果将是 - 5 个用户的 10 个 http 请求而不是 1 个。
应用程序必须在白名单中。但根据文档,如果我使用 FCM,这是不可接受的。而且我不想要它,因为它会导致电池耗尽。
漏洞?https://github.com/firebase/quickstart-android/issues/100
如果真正的原因是第一位的,那么为什么文档中没有描述呢?