这是一个复合问题,即使它们都有共同的意图,我也会尽力将各个部分分开。
明确方式向Firebase用户(而不仅仅是应用程序实例)发送有关特定主题的帖子的通知。
我尝试了各种各样的方法,但我找不到哪个方法是最好的答案。
每个Firebase用户在users/{userId}
本文档包含两个集合:令牌和兴趣。
令牌集合包含一个文档列表,这些文档将FCM令牌作为其字段之一。每次用户登录应用程序或调用FirebaseInstanceIDService.onTokenRefresh()
时,都会更新集合以添加新令牌。
兴趣集合包含兴趣列表,这些兴趣列表只是字符串并用作帖子的标签。此集合的镜像为interests/{interestId}/users/{userId}
,显示所有对某些内容感兴趣的用户。 (通过云功能保持更新和同步)
当根据特定兴趣创建新帖子时,我可以获得所有感兴趣的用户的列表,然后从他们的文档中获取他们的令牌。最后,我向每个令牌发送通知。
FirebaseInstanceIDService.onTokenRefresh()
时更新它吗?否则,只有在调用服务时登录的用户才会更新数据库。对我来说这应该是最好的选择,但是我不能理解如何让它在同一部手机上与多个用户一起工作(尽管一次只能使用一个)
我处理此问题的方式仍然是users/{userId}/interests
集合,删除users/{userId}/tokens
和interests/{interestId}/users
,并在用户登录和注销时订阅/取消订阅各种主题。< / p>
非常感谢你的时间