Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取集合中文档中的所有子集合_Javascript_Firebase_React Native_Google Cloud Firestore - Fatal编程技术网

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

Javascript 如何获取集合中文档中的所有子集合,javascript,firebase,react-native,google-cloud-firestore,Javascript,Firebase,React Native,Google Cloud Firestore,我正在寻找文件,其中谈到了我的问题,但似乎有不少 我有一个这样的收藏 集合(user1)=>uid=>document(集合(Product=>uid),nameUser….bla bla) 我得到所有产品的文档user1这很容易,但我如何得到用户2、用户3的文档,并将其收集到所有用户的数组产品中呢 我在下面尝试了这段代码,但它不明白 getData = async () => { const a = []; await firebase.firestore().colle

我正在寻找文件,其中谈到了我的问题,但似乎有不少

我有一个这样的收藏 集合(user1)=>uid=>document(集合(Product=>uid),nameUser….bla bla)

我得到所有产品的文档user1这很容易,但我如何得到用户2、用户3的文档,并将其收集到所有用户的数组产品中呢

我在下面尝试了这段代码,但它不明白

getData = async () => {
    const a = [];
    await firebase.firestore().collection('user').doc().collection('Product').onSnapshot(sanpham => {

      sanpham.forEach((doc) => {
        a.push({ id: doc.id, data: doc.data() })
      })
    })
    this.setState({ data: a });
  }

如果要从所有
产品
集合中获取文档,可以使用

要使用它,您需要执行以下操作:

await firebase.firestore().collectionGroup('Product').onSnapshot(sanpham => {
  sanpham.forEach((doc) => {
    a.push({ id: doc.id, data: doc.data() })
  })
})
如果您想知道产品属于哪个
用户
,可以通过以下方法确定:

const productRef = doc.ref;
const productCollectionRef = productRef.parent;
const userRef = productCollectionRef.parent;
console.log(userRef.id); 

我回答了这个问题,你可以在那里使用这个答案,它会工作得很好,samet已经读过了,但它没有解决我的问题,我希望有一个简洁的非嵌套查询解决方案或collectionGroup更好我正在查询文档中的所有子集合,而不是集合中的所有文档我建议的解决方案是获取所有用户(使用我的答案中显示的方式)然后,您可以为每个用户获取产品并收集到一个对象或阵列中。收藏不需要查询“Where”??我认为collectionGroup和Where总是在一起。下面的代码我已经尝试过了,但它与我其他时候尝试过的代码非常相似,我不知道如何使用它吗?我在我的问题上添加了它,看起来很麻烦有些人和我不能使用它,特别是ProdiverDataSorry,我不知道你现在有什么问题,以及它与最初的问题有什么关系,我理解是关于一次从所有子集合加载文档。我想我已经解决了上面的问题,所以如果你在那之后有新问题,我建议你把它作为一个新问题发布它自己的。