【发布时间】:2022-07-05 21:49:31
【问题描述】:
通过创建项目来学习如何使用 React。
我正在尝试通过将数据添加到集合中来过滤数据。然后我尝试在一定时间内添加所有 totalCalories,以便我可以使用 react 以形式显示它。
但是,我不知道如何获取 totalCalories 的值以及获取诸如进餐时间之类的其他字段。我想在我的 app.js 中显示所有这些,但是当我这样做时,我得到了未定义,或者说承诺待定。
任何帮助将不胜感激。 谢谢
firebase.js
export async function run() {
const time = 48;
const timediff = moment(new Date()).subtract(time, "hours")._d;
await db
.collection("/food/meals")
.where("mealTime", ">=", timediff)
.get()
.then((qSnapshot) => {
let totalCalories = 0;
qSnapshot.forEach(function (doc) {
totalCalories += doc.data().calories;
console.log(doc.id, " -> ", doc.data());
});
console.log(totalCalories);
return totalCalories;
})
.catch(function (error) {
console.log("Error getting documents: ", error);
});
}
run(); //returns nothing
console.log(run()); //Promise {<pending>}
console.log(run().totalCalories); //undefined
【问题讨论】:
标签: javascript node.js reactjs firebase promise