【问题标题】:Firebase Unexpected JSON Response when device is offline设备离线时的 Firebase 意外 JSON 响应
【发布时间】:2016-08-25 14:58:58
【问题描述】:

我正在使用 HTTP 服务器,这是我通过 firebase 服务器发送的消息

$fcm = array
(
    'to' => $stored_token,
    'priority' => 'high',
    'time_to_live' => 0,
    'data' => array
    (
        'msg' => 0
    )
);

time_to_live 为 0,表示应该立即交付或丢弃,表示设备离线时应该得到

error:Unavailable

但这是来自 FCM 服务器的服务器:

{ “multicast_id”:7.0206465789357e+18, “成功”:1, “失败”:0, “canonical_ids”:0, “结果”: [ { "message_id": "0:1472135754209293%d42090b5f9fd7ecd" } ] }

正在以高优先级和生存时间发送消息:0 秒并且设备处于离线状态。

为什么会这样?

【问题讨论】:

  • 据我所知,您收到了成功响应,因为消息已被 FCM 服务器成功处理。但这并不表示您的消息已送达。如果设备由于 time_to_live=0 而离线,则消息可能被丢弃。
  • 对于 time_to_live:0 来说很好,如果设备离线,它应该返回错误

标签: android json firebase google-cloud-messaging firebase-cloud-messaging


【解决方案1】:

documentation for FCM HTTP Server Protocol 中的表 5 表明响应中的 failure 计数是

无法处理的消息数

处理失败的原因如表9所示。所有原因都与请求参数的问题有关,例如格式无效、缺少值等。您的请求是有效的,所以算作成功。

在您的帖子中,您说“这种行为违反了文件中的规定”。请更新您的帖子以包含指向说明交付失败应被视为处理失败的文档的链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-11
    • 2020-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多