我想获取数据而不使用此处显示的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
答案 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();
请牢记:虽然乍看起来可能更自然,但在幕后它仍然在做完全相同的事情。