2017-07-31 220 views
0

根据文档,我的理解是,Firebase可以发送两种类型的消息:通知和数据。此外,它们可以是可折叠的或不可折叠的,而不可折叠的是数据消息的默认值。这意味着每封邮件都会传送到客户端应用程序。请看下图:默认情况下,FCM数据消息应为非collapsibl

Documentation

然而,当我将数据发送消息给我的客户,他们都崩溃了。例如,我发送一个,它出现在通知栏中,没有任何问题,但是如果我不打开它并发送另一条消息,它将被新消息取代。这是我的一些代码。

数据消息:

//create the notification payload 
      let payload = { 
       data: { 
        title: 'Title', 
        context: context, 
        parent: parent, 
        body: user + " commented on your contribution.", 
        sound: 'default' 
       } 
       }; 
      //send the notification 
      return admin.messaging().sendToDevice(userToken, payload).then(ok =>{ 
       console.log('Notification sent to: ' + submitter); 
      }).catch(error => { 
       console.log('Could not send notification.'); 
      }); 

我在做什么错?我希望每个通知都能出现并且不会被替换。

回答

1

您正在调试错误的一端。实际的问题出现在您发布通知的客户端。 发布通知时,如果通知ID是相同的Android操作系统将替换现有的通知。 查找代码中的notify()。有关更多详细信息,请参阅此文档:https://developer.android.com/reference/android/app/NotificationManager.html#notify(int,android.app.Notification)

+0

说得对。我完全忽略了这一点。我现在为每个通知生成一个随机ID,谢谢。 – rigotre