为每个用户创建Firebase主题

时间:2017-02-15 07:55:00

标签: android ios firebase firebase-cloud-messaging

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

  1. 创建新用户
  2. 使用生成的令牌将其保存到我们的数据库
  3. 当用户登录android或时,订阅/topics/{user-token} ios设备。
  4. 因此,如果用户有多个设备,并且我们想要发送用户特定通知,我们只需将其发送到/topics/{user-token},以便所有设备都能收到。

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

1 个答案:

答案 0 :(得分:10)

(我正在将我的评论转移到答案中)

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

  

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

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

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

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