【发布时间】:2021-10-24 23:38:13
【问题描述】:
我正在尝试使用多个查询从 Firestore 获取数据,但返回的数据始终未定义,即使 .then() 块中的 console.log(data) 显示数据存在。
const getPeers = async () => {
let query = firestore.collection("users");
if (country !== "") query = query.where("country", "==", country);
if (gender !== "") query = query.where("gender", "==", gender);
if (age !== "") query = query.where("age", "==", age);
if (religion !== "") query = query.where("religion", "==", religion);
if (budget_low !== "") query = query.where("budget_low", ">=", Number(budget_low));
if (budget_high !== "") query = query.where("budget_high", "<=", Number(budget_high));
query
.get()
.then((querySnapshot) => {
var data = [];
querySnapshot.forEach((doc) => {
data.push(doc.data());
});
console.log(data) // data exist here after console log.
return data;
})
.catch((error) => {
console.log("Error getting documents: ", error);
});
};
let d = await getPeers();
console.log(d); // gets undefined
【问题讨论】:
-
似乎是一个时间问题,如果你链接日志会发生什么... let d = await getPeers().then(() => { console.log(d) }) 类似的东西
标签: javascript firebase google-cloud-firestore async-await