通过 Firebase Cloud Function 向附近的人发送推送通知而无需手动管理推送令牌?

Send push notification to people nearby through Firebase Cloud Function without manually managing push tokens?

似乎这里的大多数解决方案除了 Firebase 保存这些令牌外,还要求开发人员手动保存每个用户的推送令牌,然后遍历这些并发送通知。这并不是真正可取的,因为我会将推送令牌存储在两个不同的地方并且需要确保它们的生命周期管理是同步的,这很容易出错有没有更好的方法?

我考虑的一些选项:

  1. 给每个用户一个person/unique主题,然后为每个主题制定一个地理位置;然后过滤这些位置,将这些主题聚合成 500 个批次并发送推送。这可能是迄今为止最好的选择 ‍♂️ 但似乎是对主题的愚蠢使用 API.
  2. 按城市划分用户,每个城市对应一个话题;然后找到某个位置附近的所有城市,并向这些主题发送推送。这是可行的,但是很多复杂的城市映射代码没有太大的灵活性(与考虑简单的半径相比)。
  3. 手动存储推送令牌→用户→地理位置;过滤掉你想要的,然后专门向令牌发送推送。由于多种原因(多设备管理、推送令牌生命周期管理、数据重复等),这是有问题的。

理想情况下,有一种方法可以向用户 ID 列表发送推送通知,甚至不需要触及推送令牌,有没有办法做到这一点?

将设备令牌关联到用户 ID 的唯一方法是自己存储该映射。您还应该假设一个用户可以拥有多个设备。 FCM 没有 "user" 的概念。它只知道设备令牌。您的应用必须引入用户的概念,然后将其映射到代码中的标记。

请注意,任何需要主题的消息传递解决方案都不是 "secure"。任何人都可以有效地接收来自任何主题的消息。