Javascript 如何获取集合的所有文档集合的所有文档?

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()) 但我无法进一步访问每个用户文档中的集合 我在网上看到的所有访问子集合的示例都

我正在尝试循环遍历用户集合中的所有用户(文档),然后访问每个用户中的集合,我将检查字段是否设置为true

我能够通过我的用户进行如下循环:

  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()

来找出每个生成文档的路径。这种类型的查询不受支持。如果您需要在一个查询中实现所有功能,则应该重新构造数据。为了满足多种类型的查询,通常会复制数据。