从 Firestore 中的一个集合中获取所有文档

嗨,我从javascript和react-native开始,我正在努力解决这个问题几个小时。有人可以解释一下如何从消防店收集中获取所有文件吗?

我一直在尝试这个:

async getMarkers() {
  const events = await firebase.firestore().collection('events').get()
    .then(querySnapshot => {
      querySnapshot.docs.map(doc => {
        console.log('LOG 1', doc.data());
        return doc.data();
      });
    });
  console.log('LOG 2', events);
  return events;
}

日志 1 打印所有对象(逐个),但日志 2 未定义,为什么?


答案 1

另一个答案中的示例是不必要的复杂。如果您只想返回查询或集合中每个文档的原始数据对象,这将更简单:

async getMarker() {
    const snapshot = await firebase.firestore().collection('events').get()
    return snapshot.docs.map(doc => doc.data());
}

答案 2

如果要包含 Id

async getMarkers() {
  const events = await firebase.firestore().collection('events')
  events.get().then((querySnapshot) => {
      const tempDoc = querySnapshot.docs.map((doc) => {
        return { id: doc.id, ...doc.data() }
      })
      console.log(tempDoc)
    })
}

与阵列相同的方式

async getMarkers() {
  const events = await firebase.firestore().collection('events')
  events.get().then((querySnapshot) => {
      const tempDoc = []
      querySnapshot.forEach((doc) => {
         tempDoc.push({ id: doc.id, ...doc.data() })
      })
      console.log(tempDoc)
   })
 }