【发布时间】:2016-11-14 13:50:40
【问题描述】:
我正在向订阅了一个主题的一小组设备(少于 5 台)发送推送消息,优先级参数设置为 high
高优先级。 FCM 尝试传递高优先级消息 立即,允许 FCM 服务唤醒睡眠设备 可能并打开到您的应用服务器的网络连接。应用程序 即时消息、聊天或语音呼叫警报,例如,通常 需要打开网络连接并确保 FCM 提供 立即向设备发送消息。仅当 消息是时间关键的,需要用户立即 互动,但请注意将您的消息设置为高优先级 与正常优先级相比,对电池消耗的贡献更大 消息。
但是当我将设备置于 IDLE 状态时,它会带来很大的延迟。在 Nougat 7.1 上延迟超过 10 分钟。这种类型的推送需要少于 10 秒的延迟。
将 time_to_live 设置为 0 只能解决 Marshmallow 上的问题。牛轧糖仍然失败。
所以,我只看到 3 个可能的问题原因
发送到主题的消息不能是高优先级。但是向每个设备发送独立的消息会增加应用服务器的负载。我需要从 Firebase 数据库加载新令牌,因此结果将是 - 5 个用户的 10 个 http 请求而不是 1 个。
应用程序必须在白名单中。但根据docs,如果我使用 FCM,这是不可接受的。而且我不想要它,因为它会导致电池耗尽。
错误? https://github.com/firebase/quickstart-android/issues/100
如果真正的原因是第一位的,那么为什么文档中没有描述呢?
【问题讨论】:
-
您的
delay_while_idle是否设置为false? -
@AL
delay_while_idle根本没有设置,默认值为false。明天也将被弃用 -
你弄明白了吗?高优先级主题消息也有限制吗?
-
@Kushan 我厌倦了这个并搬到了 OneSignal。它有设备到设备的推送,所以我不需要服务器。设备刚刚从 Firebase DB 获取所有必需的推送 ID 并向他们发送推送
-
@Pro 因为没人知道,除了来自 Google 的人,但看起来他们不在乎
标签: android firebase firebase-cloud-messaging android-7.0-nougat android-7.1-nougat