未调用 Firebase 云消息传递 onDeletedMessages()
Firebase Cloud Messaging onDeletedMessages() not called
我的 Android 应用程序使用 Firebase Cloud Messaging 发送数据消息,并且运行良好。现在我正在实施 onDeletedMessages(),但我无法让我的测试用例调用它。正在发送的消息是:
{
"priority": "high",
"to": "/topics/test",
"time_to_live": 0,
"data": {
"sites": [
{
"plusMD5": "959d4d57d19a2047a2e75fccfb9a1512",
"plus": [
"abcderf:r"
],
"site": "computers"
}
],
"time": 1500660817
}
}
测试:
- 将设备设置为飞行模式
- 发送数据信息
- 稍等一下(15 秒左右)
- 关闭飞行模式
现在设备再次具有网络连接,我希望调用 onDeletedMessages(),但事实并非如此。我是否误解了 FCM 如何处理已删除和丢失的消息,或者可能发生了其他事情?谢谢!
罗布
有意思..
这里的文档:https://firebase.google.com/docs/cloud-messaging/android/receive#override-ondeletedmessages
表示在某些情况下,FCM 可能无法传递消息。如果连接时特定设备上的应用程序有太多待处理的消息 (>100),或者如果该设备超过一个月未连接到 FCM,就会发生这种情况。在这些情况下,您可能会收到 FirebaseMessagingService.onDeletedMessages()
的回调
所以你需要满足这两个条件:
- 需要在设备离线时发送 (>100) 通知
- 开启飞行模式1个多月
为此,您只需要覆盖扩展 FirebaseMessagingService 的 firebasenotification class 中的 onDeletedMessages。
@Override
public void onDeletedMessages() {
super.onDeletedMessages();
}
为了测试这个,工作或不从 firebase 云消息控制台发送通知,到期时间为 1 分钟(在附加选项中)
我的 Android 应用程序使用 Firebase Cloud Messaging 发送数据消息,并且运行良好。现在我正在实施 onDeletedMessages(),但我无法让我的测试用例调用它。正在发送的消息是:
{
"priority": "high",
"to": "/topics/test",
"time_to_live": 0,
"data": {
"sites": [
{
"plusMD5": "959d4d57d19a2047a2e75fccfb9a1512",
"plus": [
"abcderf:r"
],
"site": "computers"
}
],
"time": 1500660817
}
}
测试:
- 将设备设置为飞行模式
- 发送数据信息
- 稍等一下(15 秒左右)
- 关闭飞行模式
现在设备再次具有网络连接,我希望调用 onDeletedMessages(),但事实并非如此。我是否误解了 FCM 如何处理已删除和丢失的消息,或者可能发生了其他事情?谢谢!
罗布
有意思..
这里的文档:https://firebase.google.com/docs/cloud-messaging/android/receive#override-ondeletedmessages
表示在某些情况下,FCM 可能无法传递消息。如果连接时特定设备上的应用程序有太多待处理的消息 (>100),或者如果该设备超过一个月未连接到 FCM,就会发生这种情况。在这些情况下,您可能会收到 FirebaseMessagingService.onDeletedMessages()
所以你需要满足这两个条件:
- 需要在设备离线时发送 (>100) 通知
- 开启飞行模式1个多月
为此,您只需要覆盖扩展 FirebaseMessagingService 的 firebasenotification class 中的 onDeletedMessages。
@Override
public void onDeletedMessages() {
super.onDeletedMessages();
}
为了测试这个,工作或不从 firebase 云消息控制台发送通知,到期时间为 1 分钟(在附加选项中)