我们有一种设计方法,为每个注册用户创建一个主题。
/topics/{user-token}
ios设备。因此,如果用户有多个设备,并且我们想要发送用户特定通知,我们只需将其发送到/topics/{user-token}
,以便所有设备都能收到。
我们还没有遇到过几个用户的任何问题,但Firebase的限制是否正常,这是一个好方法吗?
答案 0 :(得分:10)
(我正在将我的评论转移到答案中)
大多数时候,每位用户创建一个FCM主题并不是一个好主意。
发送到FCM TOPICS的消息是公开的。任何用户(甚至来自 不同的应用程序)可以订阅/ topics / {user-name}并接收这些 消息。
示例:强>
另一位开发人员可以从您的apk复制google-services.json文件
然后他可以订阅任何主题
要拦截您的用户消息,攻击者仍然需要猜测{user-name}或您正在使用的任何其他标识符。但是,如果你认为这种情况可能发生,那么问题就很大,因为你永远不会知道是否有人收到你的邮件副本,而你通常永远不会改变{user-name}。
这不是FCM的安全问题。这是API设计主题的一部分 如果您需要安全消息,可以将它们直接发送到设备令牌。
如果您仍想为每个用户执行一个主题,请注意不要发送敏感数据或不应被第三方拦截的数据。