【问题标题】:Get and return firestore collections in react native在本机反应中获取和返回 Firestore 集合
【发布时间】:2021-07-15 03:25:15
【问题描述】:

我刚开始学习对原生和 firebase 做出反应,所以我想从 firestore 获取所有集合,但问题是当我想返回数据时,即使我使用 async/等待

async getAllAssistances() {

            let allAssistances;

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

                allAssistances = tempDoc;
              })
        

      
            console.log('********************************');
            console.log(allAssistances);
            console.log('********************************');


            return allAssistances;
    }


// Output : 


====================================
Array [
  Object {
    "city": "test",
    "description": "test",
    "id": "0N0iYx8RCPPSIEXfUQUk",
    "latitude": 1,
    "longitude": 1,
    "nbPlaces": 1,
  },
]
====================================


********************************
undefined
********************************

【问题讨论】:

    标签: typescript firebase react-native


    【解决方案1】:

    您在collection 上使用await,这实际上不是异步函数。但是您在.get() 上使用.then(),即.您应该使用 await 来实现该功能。

    async getAllAssistances() {
       const assistances = firebase.firestore().collection('assistances')
       const querySnapshot = await assistances.get()
       const tempDoc = querySnapshot.docs.map((doc:any) => {
         return { id: doc.id, ...doc.data() }
       })
       console.log('====================================');
       console.log(tempDoc);
       console.log('====================================');
       const allAssistances = tempDoc;
    
       console.log('********************************');
       console.log(allAssistances);
       console.log('********************************');
       return allAssistances;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-20
      • 2021-11-01
      • 2018-04-10
      • 2021-06-28
      • 1970-01-01
      • 2019-12-11
      • 1970-01-01
      • 2021-04-07
      相关资源
      最近更新 更多