我想从Firestore获取所有文档。我试图做到这一点
const firestore = getFirestore()
firestore
.collection('products')
.limit(4)
.get()
.then((snapshot) => {
dispatch({ type: 'SHOW', snapshot })
})
.catch((err) => {
dispatch({ type: 'SHOW_ERROR', err })
})
然后我这样做
case 'SHOW':
console.log('SHow 4', action.snapshot.docs)
但作为回应,我得到了这个enter image description here 如何获取对象的值?
答案 0 :(得分:1)
来自doc:
一个
QuerySnapshot
包含零个或多个代表查询结果的DocumentSnapshot
对象。
因此,您必须如下遍历QuerySnapshot
:
case 'SHOW':
action.snapshot.forEach(doc => {
// doc.data() is never undefined for query doc snapshots
console.log(doc.id, " => ", doc.data());
});
或者,您循环传递给then()
方法的回调函数:
firestore
.collection('products')
.limit(4)
.get()
.then((snapshot) => {
snapshot.forEach(doc => {
// do something
});
})
.catch((err) => {...});
您还可以loop在QuerySnapshot
所获得的action.snapshot.docs
中所有文档的JavaScript数组上。
例如:
for (doc in action.snapshot.docs) {
console.log(doc.data());
}