如何为FirebaseMessagingService实现onDeletedMessages()?

时间:2017-09-28 15:27:00

标签: android firebase notifications firebase-cloud-messaging

如何为我的firebasemessagingservice实现ondeletedmessages()回调方法,以便与应用服务器完全同步?

另一个问题是,如果应用服务器在一个月内未发送任何通知,那么当应用服务器再次发送新通知时,是否会调用onDeletedMessages()? (在第二种情况下解释https://firebase.google.com/docs/reference/android/com/google/firebase/messaging/FirebaseMessagingService.html#onDeletedMessages()?)

感谢您的回复,

Hakoum

1 个答案:

答案 0 :(得分:0)

我对此问题很好奇。 但我是这样工作的 对于我的服务,我使用两个主题。我发现一个奇怪的错误。

我在3台设备中进行了测试。然后我多次向设备发送消息。 然后一瞬间,其他两个设备就无法接收消息(第一次)。

这是我的node.js代码。

    var topic = 'notice';
    var fcm_message = {
    notification : {
        title : 'title',
        body : 'message',
    },
    data : {
        title:'title',
        body:'test body',
    },
    topic : topic
    };

对于无法接收的android设备,我在后端使用这样的令牌向该设备发送了消息。

   var fcm_message = {
   notification : {
      title : 'title',
      body : 'message',
   },
   data : {
      title:'title',
      body:'test body',
   },
   token : 'DEVICE TOKEN(UNRECEIVED)'
   };

然后运行良好。 (主题消息出现在所有设备中。)

我认为android上的onDeletedMessages函数应该实现此工作。

“它将令牌发送到后端服务器,后端将消息再发送一次到使用此令牌的设备。”

总结就是这样。

  1. 后端发送带有主题的消息。(一个主题将消息发送到所有设备)。

  2. 在android的onDeletedMessages回调中,此设备将其令牌发送到后端。

  3. 后端再次向特定令牌发送消息。(令牌向一台设备发送消息。)