使用 uid 作为 Firebase 消息传递主题?

Mar*_*ode 0 firebase firebase-cloud-messaging

我最近问了一个SO 问题,询问如何使用 Firebase 消息传递的主题向组中的每个人发送消息,除了触发通知的人(写入数据库中的组部分)。我得到了一个有趣的答案,它涉及为我的 iOS 应用程序的每个用户创建一个主题,然后使用为每个成员创建的主题向组中的每个成员发送一条消息。主题的名称只是该人的 uid,所以我只是遍历组成员的 uid 并向其相应的主题发送消息(忽略触发用户的 uid)。

使用该解决方案将意味着我的应用程序的每个用户都拥有自己的主题(/topics/<uid1>/topics/<uid2>,等)。我想知道这样做是否有任何缺点。这将简化我发送消息的云功能,但我不确定拥有这么多主题在成本和性能方面是否昂贵。有人可以帮我弄清楚这是否是一个好的解决方案吗?

Fra*_*len 5

我在这篇博文中使用了类似的方法:使用 Firebase 数据库和云消息传递在 Android 设备之间发送通知。唯一的区别是我们在那里使用用户名,以使用例更易于阅读。

这种方法的几个问题:

  • 主题是公开的,任何人都可以订阅主题。在您的情况下,UID 可能比博客文章中的用户名更难猜,但它仍然不安全。
  • FCM 针对具有大量标记的合理数量的主题进行了优化。所以它在技术上可以处理更小的主题,但它不是为此而设计的。青年会