在本机反应中获取和返回 Firestore 集合

Posted

技术标签:

【中文标题】在本机反应中获取和返回 Firestore 集合【英文标题】:Get and return firestore collections in react native 【发布时间】: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
********************************

【问题讨论】:

【参考方案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;

【讨论】:

以上是关于在本机反应中获取和返回 Firestore 集合的主要内容,如果未能解决你的问题,请参考以下文章

根据firebase / firestore文档在应用程序图标徽章通知中反应本机

Firestore 从集合中获取数组

在本机反应中获取返回旧数据的 API

获取分页反应的firestore收集记录计数[重复]

添加Firebase Firestore对象进行本机反应

渲染从 firebase firestore 获取的数组数据