Javascript 按客户端筛选web通知

Javascript 按客户端筛选web通知,javascript,firebase,firebase-cloud-messaging,service-worker,firebase-notifications,Javascript,Firebase,Firebase Cloud Messaging,Service Worker,Firebase Notifications,当我向某个主题发送通知时,例如 const message = { data: { cost: 49 }, topic: 'apple' } admin.messaging().send(message) 问题是,如果用户设置为=50,如何防止/过滤通知?(Firestore/localStorage?) 我该怎么做 正如我所认为的,它应该通过消息传递sw.js进行过滤,但这是如何实现的呢 或者有更好的主意,或者我遗漏了什么?案例1: 案例2: 将用户数据保存在中,因为用户可以访问s

当我向某个主题发送通知时,例如

const message = {
  data: { cost: 49 },
  topic: 'apple'
}
admin.messaging().send(message)
问题是,如果用户设置为=50,如何防止/过滤通知?(Firestore/localStorage?)

我该怎么做

正如我所认为的,它应该通过消息传递sw.js进行过滤,但这是如何实现的呢

或者有更好的主意,或者我遗漏了什么?

案例1:

案例2:

  • 将用户数据保存在中,因为用户可以访问service worker中的IndexedDB数据
  • 您必须将firebase messaging sw.js文件中的函数setBackgroundMessageHandler自定义为,以处理用户的选项
  • 注意:如果在消息负载中设置了通知字段,则不会调用setBackgroundMessageHandler回调,相反,SDK会根据您的负载显示通知
无论如何,在客户端使用筛选器并不是一个好方法,应该在服务器端进行此操作

案例2:

  • 将用户数据保存在中,因为用户可以访问service worker中的IndexedDB数据
  • 您必须将firebase messaging sw.js文件中的函数setBackgroundMessageHandler自定义为,以处理用户的选项
  • 注意:如果在消息负载中设置了通知字段,则不会调用setBackgroundMessageHandler回调,相反,SDK会根据您的负载显示通知

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

谢谢我在研究时也得到了这个(但我还没有测试),你确认它应该工作吗?所以我会接受这个答案。谢谢我在研究时也得到了这个答案(但我还没有测试),你确认它会工作吗?所以我会接受这个答案。