javascript - 按客户端过滤网络通知

标签 javascript firebase firebase-cloud-messaging service-worker firebase-notifications

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

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

问题是关于阻止/过滤通知,如果用户设置类似>= 50的内容? (Firestore/localStorage?)

我怎样才能做到这一点?

我认为应该使用 messaging-sw.js 过滤它,但是如何以及可能吗?

或者有更好的想法或者我错过了什么?

最佳答案

案例1:When your app is in the foreground

案例2:When your app is in background

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

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

关于javascript - 按客户端过滤网络通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58598948/

相关文章:

Javascript : How group and sum values from multidimensional array

javascript - 我如何将鼠标悬停、鼠标移开和单击结合起来。没有 .mouseout 会毁掉 .click

javascript - 如何使用react-native在向下滚动时隐藏搜索栏以及向上滚动时显示它?

javascript - 如何使用 rxjs 返回结果列表

java - 根据用户的 uid 获取其他用户的数据

ios - 如何从开发、测试、登台和生产环境发送 APNS 推送通知?

Javascript !和 !!差异

firebase - 使用 firebase 在 Nestjs 中登录并注册

android - Firebase 上用于推送通知的触发器

jquery - 火力地堡错误 : Messaging: We are unable to register the default service worker