为每个用户创buildFirebase主题

我们有一个devise方法是为每个注册用户创build一个主题。

  1. 创build一个新的用户
  2. 使用生成的令牌将其保存到我们的数据库
  3. 当用户在Android或iOS设备上login时,订阅/topics/{user-token}

因此,如果用户有多个设备,并且想要发送特定于用户的通知,我们只需将其发送到/topics/{user-token}以便它被所有设备接收。

我们还没有遇到过一些用户的问题,但是对于Firebase的限制,这是好的方法吗?

(我正在将我的意见转化为答案)

大多数时候为每个用户创build一个FCM主题不是一个好主意。

发送给FCM TOPICS的消息是公开的。 任何用户(甚至来自不同的应用程序)都可以订阅/主题/ {用户名}并接收这些消息。

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

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

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