按客户端过滤Web通知

时间:2019-10-28 22:00:36

标签: javascript firebase firebase-cloud-messaging firebase-notifications

当我向诸如...之类的主题发送通知时

const message = {
  data: { cost: 49 },
  topic: 'apple'
}
admin.messaging().send(message)

如果用户设置了类似> = 50 的内容,则问题与防止通知有关?

我该怎么做?

我认为应该在 messaging-sw.js 上对其进行过滤,但是如何并且可能?

或者有更好的主意,或者我缺少什么?

1 个答案:

答案 0 :(得分:2)

情况1:When your app is in the foreground

情况2:When your app is in background

  • 将用户的数据保存在 IndexedDB 中,因为用户可以在服务工作者中访问IndexedDB数据
  • 您必须将 firebase-messaging-sw.js 文件中的函数 setBackgroundMessageHandler 自定义为 this guideline ,才能处理用户的选项
  • 注意:如果您在消息有效负载中设置了通知字段,则不会调用setBackgroundMessageHandler回调,而是SDK将根据您的有效负载显示通知。

无论如何,在客户端使用过滤器不是一个好方法,应该在服务器端完成