【问题标题】:Firebase Messaging - Uninstalling doesn't prevent notifications [duplicate]Firebase 消息 - 卸载不会阻止通知 [重复]
【发布时间】:2019-03-07 20:13:52
【问题描述】:

我们有一个 iOS React Native 应用,它通过 react-native-firebase 从 Firebase 服务器接收 FCM 通知。

我们在用户登录时获得“消息令牌”,然后将其保存到我们的 firebase 数据库,然后使用该令牌向该用户发送 FCM 通知。当用户注销时,令牌失效。

但是,如果用户卸载应用程序,我们无法使令牌失效。当他们重新安装时,他们会被注销,但他们会继续收到应用程序的通知

有没有办法使消息传递令牌无效?如果没有,如何阻止以前安装的 FCM 通知到达?

【问题讨论】:

  • 我们为每个设备使用lastseen 时间戳并且(至少对于我们的应用程序而言)FCM 消息由客户端安排。如果消息是在服务器端生成的,那么您必须包含一些限制。添加sent_counter 并在每次发送消息时在设备的配置文件中增加它。当设备重新联机时,将此计数器归零。基于sent_counterlastseen 进行限制。创建一个每周运行一次的 cron 作业:1) 安排 3 个月后的重新参与活动 2) 修剪超过 6 个月的设备。我>
  • @jamespoag 这似乎是一个答案而不是评论,谢谢!

标签: ios firebase firebase-cloud-messaging react-native-firebase


【解决方案1】:

当应用程序被删除并重新安装时,它必须在发送通知之前再次请求许可。因此,在第一次再次打开应用程序之前不会收到任何通知。这意味着您的应用必须在检查是否有用户登录之前请求并获得显示通知的权限。我建议您尝试几种不同的方法:

  • 在请求发送通知的权限之前验证用户是否已登录,或者
  • 启动应用程序后,检查登录用户。如果未找到用户,请删除所有注册令牌

【讨论】:

  • 谢谢仁。仔细观察,这很奇怪,但在卸载并重新安装后,“onAuthStateChanged”和“onTokenRefresh”处理程序似乎在与卸载时的值连接时触发。
猜你喜欢
  • 1970-01-01
  • 2016-12-25
  • 1970-01-01
  • 2017-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-28
  • 2022-11-10
相关资源
最近更新 更多