未调用Firebase Cloud Messaging onDeletedMessages()

时间:2017-07-21 18:32:31

标签: android firebase messaging

我的Android应用使用Firebase云消息传递数据消息,并且工作正常。现在我正在实现onDeletedMessages(),但是我无法通过测试用例来调用它。发送的消息是:

{
  "priority": "high",
  "to": "/topics/test",
  "time_to_live": 0,
  "data": {
    "sites": [
      {
        "plusMD5": "959d4d57d19a2047a2e75fccfb9a1512",
        "plus": [
          "abcderf:r"
        ],
        "site": "computers"
      }
    ],
    "time": 1500660817
  }
}

测试:

  1. 将设备设置为飞行模式
  2. 发送数据信息
  3. 等一下(15秒左右)
  4. 关闭飞行模式
  5. 现在设备又有了网络连接,我希望能够调用onDeletedMessages(),但事实并非如此。我是否误解了FCM如何处理删除和遗漏的消息,或者其他事情是否正在发生?谢谢!

    罗布

1 个答案:

答案 0 :(得分:0)

有趣..

此处的文档:https://firebase.google.com/docs/cloud-messaging/android/receive#override-ondeletedmessages

表示在某些情况下,FCM可能无法发送消息。如果在连接时特定设备上的应用程序有太多邮件(> 100)未决,或者设备在一个多月内未连接到FCM,则会发生这种情况。在这些情况下,您可能会收到FirebaseMessagingService.onDeletedMessages()

的回调

所以你需要满足这两个条件:

  1. 需要在设备离线时发送(> 100)通知
  2. 启用飞机模式超过一个月