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

时间:2021-04-02 02:56:21

标签: javascript firebase react-native google-cloud-firestore

我正在寻找文档谈论这个我的问题,但看起来相当多

我有一个这样的收藏 collection(user1)=>uid=>document(collection(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 });
  }

1 个答案:

答案 0 :(得分:1)

如果要从所有 Product 集合中获取文档,可以使用 collection group query

要使用它,您可以:

await firebase.firestore().collectionGroup('Product').onSnapshot(sanpham => {
  sanpham.forEach((doc) => {
    a.push({ id: doc.id, data: doc.data() })
  })
})

如果您想知道某个产品属于哪个 user,可以通过以下方式确定:

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