【问题标题】:Getting Data from Firestore for web从网页版 Firestore 获取数据
【发布时间】:2021-07-17 13:57:43
【问题描述】:

我目前尝试使用 firebase for web 并从 Firestore 获取数据。 这是我从 Firestore 中获取所有数据的代码。

function FireStoreGetAllData() {

let db = firebase.firestore();
let dataMap = new Map();

db.collection("User").get().then((querySnapshot) => {
        querySnapshot.forEach((doc) => {
            console.log(doc.id, " => ", doc.data());
          
            let dataset = new Map();
            let docId = doc.id;
            let docdata = doc.data();

            let firstName = docdata.first;
            let lastName = docdata.last;
            let bornData = docdata.born;

            dataset.set('first', firstName);
            dataset.set('last', lastName);
            dataset.set('born', bornData)

            dataMap.set(docId, dataset);
        });

    });
console.log('dataSet',dataMap.entries());
return dataMap;}

问题是“dataMap”每次都返回null。 我调试了这个问题,发现“db.colloction”是在“return dataMap”之后执行的代码。

我错过了什么?

【问题讨论】:

    标签: javascript firebase web google-cloud-firestore


    【解决方案1】:

    db.collectionreturn dataMap 之后执行,因为异步

    让你 FireStoreGetAllData 作为异步函数,然后你会得到你的 dataMap。

    async function FireStoreGetAllData() {
    
       let db = firebase.firestore();
       let dataMap = new Map();
    
       const querySnapshot = await db.collection("User").get();
       querySnapshot.forEach((doc) => {
    
            let dataset = new Map();
            let docId = doc.id;
            let docdata = doc.data();
    
            let firstName = docdata.first;
            let lastName = docdata.last;
            let bornData = docdata.born;
    
            dataset.set('first', firstName);
            dataset.set('last', lastName);
            dataset.set('born', bornData)
    
            dataMap.set(docId, dataset);
        });
    
        
       return dataMap;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-20
      • 1970-01-01
      • 2018-11-06
      • 2021-09-04
      相关资源
      最近更新 更多