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