我有一个 iOS 消息应用程序 (Swift),其中一个聊天由 x 个用户组成。单个用户可以参与多个聊天,集合groupChats
包含应用程序用户之间的所有群聊。这allUsersUID
是一个数组,其中包含该聊天中所有用户的 Firebase UID。该texts
集合包含特定聊天的所有消息。用户发送消息时会在该集合中创建一个新文档,并监听同一集合中来自其他用户的新消息。
如果用户 X 向集合发送了一条新消息texts
,那么如何向用户 A、B、C 发送推送(横幅、推送、警报)通知,用户 X 能否以编程方式将此通知发送给所有其他用户?我读过这个SO 帖子,但答案是 2018 年的,似乎已经过时了。
Firebase Cloud Messaging 不了解您的用户,因此您必须在应用程序中自行建立连接。
最常见的方法是获取每台设备上每个用户的FCM 令牌,并将这些每个用户的令牌存储在数据库(有时称为令牌注册表)中。然后,当您想要通知用户时,您可以从注册表中读取他们的设备令牌,并调用 API 向这些令牌发送消息。这种消息发送必须在受信任的环境中进行,例如您控制的服务器或 Cloud Run/Cloud Functions 之类的东西。
除了我上面提供的链接之外,我还建议阅读 Firebase 文档的FCM 注册令牌管理最佳实践。