我正在寻找文档谈论这个我的问题,但看起来相当多
我有一个这样的收藏 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 });
}
答案 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);