如何不使用.then()从Cloud Firestore获取数据

时间:2019-04-10 11:57:34

标签: node.js firebase google-cloud-firestore

我想获取数据而不使用此处显示的promise: https://firebase.google.com/docs/firestore/query-data/get-data

在云功能控制台中,我无法立即获取数据。

docRef.get().then(doc => {
        console.log("In Then");
        console.log('Authorized User Data From Function:', doc.data());
        result = doc.data();
        // if (!doc.exists) {
        //   console.log('No such document!');
        // } else {
        //   console.log('Payment Request Data:', doc.data());
        // }
    }).catch(err => {
        console.log("In Catch");
        console.log('Error getting document', err);
        return false;
    });

// I don't want to use this. This is taking time to complete

1 个答案:

答案 0 :(得分:0)

数据是从Cloud Firestore异步加载的。无法立即从基于云的数据库中获取数据。如果您希望能够使用大多数现代Web API,则必须习惯使用这种异步API。

最接近没有then()的地方是在现代Node.js环境中使用async / await。使用async / await,上面的代码将像这样准备好:

doc = await docRef.get();
console.log('Authorized User Data From Function:', doc.data());
result = doc.data();

请牢记:虽然乍看起来可能更自然,但在幕后它仍然在做完全相同的事情。