如何从Firestore获取所有文档

时间:2020-05-01 10:30:12

标签: javascript firebase google-cloud-firestore

我想从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 如何获取对象的值?

1 个答案:

答案 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) => {...});

您还可以loopQuerySnapshot所获得的action.snapshot.docs中所有文档的JavaScript数组上。

例如:

for (doc in action.snapshot.docs) {
    console.log(doc.data());
}