首页 > 解决方案 > 特定浏览器的 Firebase 推送通知

问题描述

我有一个网页,可以像 facebook 一样显示实时通知。我想向特定用户发送通知,但是如何让发送这些通知的后端知道每个用户的令牌?有没有办法在我的后端已知的用户 ID 和它用来发送实际通知的令牌之间制作火力地图?我正在考虑使用messaging.onTokenRefresh()将 ajax 请求发送到后端以跟踪当前令牌。并且每当后端发送通知时,它都会通过诸如用户ID之类的东西来获取它。但是如果有比这更好的东西,我会徘徊吗?

标签: firebasepush-notificationfirebase-cloud-messaging

解决方案


保持用户与其 FCM 代币之间的映射是一种常用方法。它有时被称为令牌注册表。

要记住几件事:

  • 单个用户可以拥有多个令牌,例如当他们在多个设备上打开您的应用时。
  • 令牌可能会过期,在这种情况下,您需要从注册表中删除它们。一个简单的方法是当您尝试发送到令牌时遇到错误,如本例所示。

一个简单的替代方法是为每个用户创建一个主题(例如使用他们的 UID),然后发送给该主题。不过要记住一些事情:

  • 主题是公开的,因此任何知道主题 ID 的人都可以订阅它。
  • 在这种情况下,您不需要维护自己的设备注册表,因为 FCM 主题会在幕后为您执行此操作。

推荐阅读