特定浏览器的Firebase推送通知

特定浏览器的Firebase推送通知,firebase,push-notification,firebase-cloud-messaging,Firebase,Push Notification,Firebase Cloud Messaging,我有一个网页,可以像facebook一样显示实时通知。我想向特定用户发送通知,但如何使发送这些通知的后端知道每个用户的令牌? 有没有办法在我的后端已知的用户id和它用来发送实际通知的令牌之间建立firebase映射? 我正在考虑使用messaging.onTokenRefresh()将ajax请求发送到后端,以跟踪当前令牌。每当后端发送通知时,它都会通过用户id之类的已知信息来获取通知。 但我不知道还有比这更好的吗 保持用户与其FCM令牌之间的映射是一种常见的方法。它有时被称为令牌注册表 需要记

我有一个网页,可以像facebook一样显示实时通知。我想向特定用户发送通知,但如何使发送这些通知的后端知道每个用户的令牌? 有没有办法在我的后端已知的用户id和它用来发送实际通知的令牌之间建立firebase映射? 我正在考虑使用
messaging.onTokenRefresh()
将ajax请求发送到后端,以跟踪当前令牌。每当后端发送通知时,它都会通过用户id之类的已知信息来获取通知。
但我不知道还有比这更好的吗

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

需要记住的几件事:

  • 单个用户可以有多个令牌,例如当他们在多个设备上打开您的应用程序时
  • 令牌可能会过期,在这种情况下,您需要将其从注册表中删除。一种简单的方法是在尝试发送到令牌时出错,如中所示
一个简单的替代方法是为每个用户创建一个主题(例如使用他们的UID),并发送给该用户。不过,有些事情需要记住:

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

是的,您当然可以将用户与其设备的令牌配对。这是很常见的。@DougStevenson你能告诉我怎么做吗?我说的是一个网页,而不是一个基于你所写的移动应用程序,听起来你的思路是对的。若您正在寻找有关如何管理实际使用令牌的后端的完整说明,那个么这就超出了堆栈溢出问题的范围。如果你在编程方面有特殊的问题,这就是这个网站的目的。我认为主题可能接近我需要的。我的意思是我可以让主题ID像散列一样不可预测。我认为这两种方法都很方便。第一种更安全,但第二种更容易。谢谢@poff:)