Javascript 如何获取集合的所有文档集合的所有文档?
我正在尝试循环遍历用户集合中的所有用户(文档),然后访问每个用户中的集合,我将检查字段是否设置为true 我能够通过我的用户进行如下循环:Javascript 如何获取集合的所有文档集合的所有文档?,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,我正在尝试循环遍历用户集合中的所有用户(文档),然后访问每个用户中的集合,我将检查字段是否设置为true 我能够通过我的用户进行如下循环: let users = await firebase .firestore() .collection("users") .get() return users.docs.map(item => item.data()) 但我无法进一步访问每个用户文档中的集合 我在网上看到的所有访问子集合的示例都
let users = await firebase
.firestore()
.collection("users")
.get()
return users.docs.map(item => item.data())
但我无法进一步访问每个用户文档中的集合
我在网上看到的所有访问子集合的示例都明确涉及到这样做,即
let snapshot = await firebase
.firestore()
.collection('users')
.doc('exampleUID')
.collection('subcollection')
.get()
但是我没有看到为集合中的所有文档获取集合的指南示例。没有一种机制可以同时从所有“子”集合获取文档和所有“子”文档,但是您可以获取子集合中的所有文档 它被称为“集合团体”。您可以在名为
subcollection
的CollectionGroup上创建查询。效果很好
firebase.firestore().collectionGroup(tableName).get()
不过,警告,-它将所有名为subcollection
的集合和子集合一起处理,而不考虑级别,因此您必须考虑如何命名子集合。
例如,如果您尝试了.collectionGroup(“thatGroup”)
,并且您的数据库中有以下结构:
/topCollection1/{documents}/subcollection1/{documents}/thatGroup/{documents}
/topCollection2/{documents}/thatGroup/{documents}
您将得到topCollection1和topCollection2的后代文档
当结果显示在一个
查询快照中时,您可以使用.ref.path
(一个字符串)并对其进行解析,或者重复使用.parent()
来找出每个生成文档的路径。这种类型的查询不受支持。如果您需要在一个查询中实现所有功能,则应该重新构造数据。为了满足多种类型的查询,通常会复制数据。