firebase - 特定浏览器的 Firebase 推送通知
问题描述
我有一个网页,可以像 facebook 一样显示实时通知。我想向特定用户发送通知,但是如何让发送这些通知的后端知道每个用户的令牌?有没有办法在我的后端已知的用户 ID 和它用来发送实际通知的令牌之间制作火力地图?我正在考虑使用messaging.onTokenRefresh()
将 ajax 请求发送到后端以跟踪当前令牌。并且每当后端发送通知时,它都会通过诸如用户ID之类的东西来获取它。但是如果有比这更好的东西,我会徘徊吗?
解决方案
保持用户与其 FCM 代币之间的映射是一种常用方法。它有时被称为令牌注册表。
要记住几件事:
- 单个用户可以拥有多个令牌,例如当他们在多个设备上打开您的应用时。
- 令牌可能会过期,在这种情况下,您需要从注册表中删除它们。一个简单的方法是当您尝试发送到令牌时遇到错误,如本例所示。
一个简单的替代方法是为每个用户创建一个主题(例如使用他们的 UID),然后发送给该主题。不过要记住一些事情:
- 主题是公开的,因此任何知道主题 ID 的人都可以订阅它。
- 在这种情况下,您不需要维护自己的设备注册表,因为 FCM 主题会在幕后为您执行此操作。
推荐阅读
- javascript - A帧动画缩小半径
- java - 如何通过 Flink 流转换非 json
- angular - 自定义 DevExpress DataGrid 分页
- azure-devops - Azure DevOps 在工作项上创建自定义计算字段
- ruby-on-rails - Ruby on Rails:如何限制 Mongoid 中哈希字段的键?
- ocr - Tesseract 无法打开 .tr 文件问题
- ios - SwiftUI 程序化导航问题
- excel - 使用列中的范围对相应值求和
- google-api - Google API 错误 - 无法从请求中确定客户端 ID
- r - 如何使用 R 将多个 csv 文件编译成单个 xlsx 文件?