1

我正在使用 Firebase 来存储通知所需的内容,并使用 Google Cloud Functions 来发送通知。当用户决定访问某个应用程序时,他们会订阅该事件,以便他们可以接收聊天通知。

我的第一个问题是他们会收到每条消息的单独通知,我想这在群聊中会很烦人。我尝试使用collapseKey,但我认为我使用错误或误解了它的目的。是不是因为通知已经发送而无法正常工作?无论哪种方式,我该如何解决这个问题?

我的第二个问题是用户订阅了一个事件,但由于有时接收通知会有一点延迟,如果他们在发送通知之前退出应用程序,他们可以获得自己的消息通知。我该如何防止这种情况?

4

2 回答 2

2

对于您的第一个问题,请使用

待处理的意图标志

PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0 /* Request code */, intent,
            PendingIntent.FLAG_UPDATE_CURRENT);

有关标志的更多信息,请访问此链接

于 2017-03-21T06:29:25.287 回答
1

我无法弄清楚 PendingIntent 解决方案,但这对我有用。

原来“collapseKey”是在设备处于非活动状态时使用的。您可以在手机运行时使用“标签”来替换旧通知。

const payload = {
    notification:{
      title: eventName,
      body: message,
      tag: 'chat',
      sound: 'default'
    },
  };

对于第二部分,我刚刚切换到 sendToDevice 而不是 sendToTopic。我不知道您可以一次将其发送到多个设备,哈哈。请注意,注册令牌数组不允许为空。

于 2017-03-21T15:39:22.967 回答