如何执行collectionGroup查询,但获得子集合位于其中的文档?

时间:2020-08-15 20:37:15

标签: firebase google-cloud-firestore

如何执行collectionGroup查询,但要获取子集合所在的文档。我的数据结构为:Users (collection) -> UID(doc) -> privateData (collection) -> UID (doc) 并且我想根据UID docprivateData collection中的字段进行查询,但是我想要来自UID Doc

Users collection的实际数据

2 个答案:

答案 0 :(得分:1)

您不能像这样跨多个集合进行查询。如果要从其他子集合中获取数据,则您的集合组查询将需要定位到该其他子集合。这意味着您可能必须将privateData集合中的字段复制到Users集合中。在像Firestore这样的nosql数据库中,字段数据重复很常见。

如果您出于某种原因(例如隐私)无法复制该数据,则需要分别查询每个相关文档,从而有效地将每个用户文档加入privateData中的匹配文档。

答案 1 :(得分:0)

根据您的数据模型,您将必须对子对象中子集合的父文档有一个引用,或者获取该文档并使用文档快照,则可以调用其父引用 像这样的东西:querySnapshot.docs()[x].snapshot.getRef().getParent()