撤销通知权限与匿名 FCM 令牌



我很想知道应用程序代码应该如何处理与Firebase云消息(FCM(一起撤销通知权限令牌。该问题与这篇文章/答案部分相似,尽管他们的案例不包括 FCM。

所以我们有以下场景:

  1. 该应用程序不需要用户登录(因此我们存储在数据库中的令牌是匿名的,与任何uid无关(

  2. 该应用程序提供了一组选择加入/选择退出按钮,用于授予和撤销通知权限。

  3. 该应用会收集数据库中的令牌,供sendToDevice(tokens, notifcation)稍后在 Firebase 函数中使用。

  4. 应用程序在令牌
  5. 颁发(getToken(或刷新(onTokenRefresh(后,利用localStorage保留令牌,以便稍后将其提供给deleteToken(token),并在UI中指示通知订阅的当前状态。

  6. 现在,用户选择撤销曾经授予的权限 - 如果他们这样做干净(通过选择退出按钮(,则会调用deleteToken(token)方法并清除相应的本地存储项。所有内容都应同步,FCM 将不再发送给此用户。

  7. 问题如果用户在全局浏览器范围内以更管理/批量的方式清除所有权限或本地存储,该怎么办。然后事情变得不同步。令牌从浏览器中消失,UI 将显示已选择退出,但令牌尚未从数据库中删除,因此它仍然有效,用户将继续收到通知。发送结果不会包含此用户的任何错误,因此我们将无法识别情况并删除令牌。

这里最常见的做法是什么?是否不鼓励匿名通知?我对通知和商品信息管理的理解中是否遗漏了任何内容?

令牌最终将变为无效。 您将能够分辨,因为向该令牌发送消息将产生错误代码"错误:未注册"。从链接的文档:

现有的注册令牌可能在许多 方案,包括:

  • 如果客户端应用向 FCM 取消注册。
  • 如果客户端应用自动取消注册,则当用户卸载应用程序时可能会发生这种情况。例如,在 iOS 上,如果 APNS 反馈服务将 APNS 令牌报告为无效。
  • 如果注册令牌过期(例如,Google 可能决定刷新注册令牌,或者 APNS 令牌已过期( 对于 iOS 设备(。
  • 如果客户端应用已更新,但新版本未配置为接收消息。

对于所有这些情况,请从应用中删除此注册令牌 服务器并停止使用它发送消息。

如果您使用管理员 SDK 或其他版本的 FCM 服务器 API 发送消息,情况也类似。

虽然您可能不会立即收到有关此内容的反馈,但您最终会收到此错误消息,这是将其从数据库中删除的线索。

相关内容

  • 没有找到相关文章

最新更新