ANDROID FIRESTORE:获取所有子集合中包含“current user”的文档。
ANDROID FIRESTORE:获取所有子集合中包含“current user”的文档。
我对Firestore云平台还不熟悉,正在尝试学习它。
我正在构建一个项目,目前遇到了一个问题。
我的Firestore数据库如下所示:
(图片链接)
(图片链接)
我有一个Groups集合,其中包含一个"Users List"子集合,其中包含"timestamp"和"user_id"。
当我创建一个群组时,我获取了创建群组的"用户"的user_id,并将其添加到了"Users List"中。
现在我想要检索与"CurrentUser"相关的所有"Groups"(groupName),但我很难弄清楚这个问题,因为我发现NoSQL数据库与SQL数据库非常不同。
如果有人能够给我一些指导,那将非常好。
谢谢。
问题的出现原因:
问题的提出者想要从Firestore数据库中获取所有包含当前用户的子集合的文档。然而,在当前的数据库结构下,并没有直接的方法来实现这个目标。
解决方法:
为了解决这个问题,提出者决定修改数据库的结构。他们建议在"Users"集合中添加一个字段,用来收集每个用户所参与的用户组。可以使用数组或对象来收集这些信息,因为Firestore可以收集这些数据类型。
他们相信这种修改的方法可能不是最佳的,但目前来说是最好的解决方案。通过这种方法,只需要查询一次每个用户的用户组,而不需要为每个用户查询多次以获取用户组。虽然这样做会增加一些额外的数据大小,但在这种情况下,这仍然是可以接受的,因为Firestore的计费是基于查询和数据大小的。少量的额外数据比为一个用户获取用户组而浪费大量的查询要好。
最后,问题的提出者感谢回答者的建议,并表示根据建议修改了数据库结构,并且解决了问题。