这个问题在这里已有答案:
我正在计划使用Cloud Firestore进行项目的数据库结构,而我正在尝试找出存储数据并将其与用户关联的最佳方法。具体如下:
我在我的数据库的根目录中有一组用户文档,我希望用户能够通过查看显示该用户的帖子的用户个人资料页面来创建可访问的帖子,并通过查看页面来汇总显示所有用户的帖子。
将用户的帖子存储在用户文档的子集合中可以很容易地获取用户的帖子以获取他们的个人资料,但是是否可以编写一个优雅的查询,将每个用户的帖子集合合并为一个结果集?
或者更好的方法是在我的被调用帖子的根目录中有另一个集合,并在每个帖子上有一个字段,其中包含用户的UID或用户文档的非规范化副本?
查询针对单个文档集合运行。 (目前)无法跨多个(子)集合进行查询。
这意味着您可能希望将用户文档保存在顶级documents
集合中,并为其UID使用owner
属性。然后,您可以使用简单的documentsRef.where("owner", "==", uid)
选择用户的帖子。