为每个用户创建Firebase主题

oca*_*nal 7 android ios firebase firebase-cloud-messaging

我们有一种设计方法,为每个注册用户创建一个主题.

  1. 创建新用户
  2. 使用生成的令牌将其保存到我们的数据库中
  3. 订阅/topics/{user-token}用户登录android或ios设备时.

因此,如果用户有多个设备,并且我们想要发送用户特定通知,我们只需将其发送给/topics/{user-token}所有设备即可.

我们还没有遇到过几个用户的任何问题,但Firebase的限制是否正常,这是一个好方法吗?

Die*_*ini 12

(我正在将我的意见转移到答案中)

大多数时候,每个用户创建一个FCM TOPIC并不是一个好主意.

发送到FCM TOPICS的消息是公开的.任何用户(甚至来自不同的应用程序)都可以订阅/ topics/{user-name}并接收这些消息.

示例:
另一位开发人员可以从您的apk复制google-services.json文件.
然后他可以订阅任何主题.
要拦截您的用户消息,攻击者仍然需要猜测{user-name}或您正在使用的任何其他标识符.但是如果你认为这种情况可能会发生,那么问题就很大了,因为你永远不会知道是否有人收到你的邮件副本,而你通常永远不会改变{user-name}.

这不是FCM的安全问题.这是主题API设计的一部分.
如果您需要安全消息,可以将它们直接发送到设备令牌.

如果您仍想为每个用户执行一个主题,请注意不要发送敏感数据或不应被第三方拦截的数据.