我正在尝试通过 Node 从 firebase 获取数据,但数据没有被解析。我无法获得我想要的数据。基本上我想要来自 firebase 数据的时间戳,但无法获取它。
我已经尝试使用 promise 和 foreach 函数来解决它,但效果不佳。
router.post("/date", (req, res) => {
const date = {
sdate: req.body.sdate,
edate: req.body.edate
};
let s = new Date(date.sdate).getTime();
let e = new Date(date.edate).getTime();
const coll = db
.collection("calls")
.where("time", ">=", `${s}`)
.where("time", "<=", `${e}`)
.get()
.then(doc => {
doc.forEach(data => {
console.log(data.id, data.data());
});
})
.catch(err => {
console.log(err);
});
console.log(coll);
我希望将数据解析为简单的对象或数组,以便将其呈现给模板引擎以显示数据。
最佳答案
看起来您正在尝试获取 multiple documents from a collection .由于变量名称与其含义不匹配,您的代码示例令人困惑。
在您的问题中也不清楚您的代码示例的哪一部分未能产生预期的结果,但我怀疑它是 console.log(coll)
。这是因为你是returning nothing在您的 .then()
中,您无需等待 promise 在记录之前得到解决。
router.post("/date", (req, res) => {
const date = {
sdate: req.body.sdate,
edate: req.body.edate
};
let s = new Date(date.sdate).getTime();
let e = new Date(date.edate).getTime();
const coll = []
db
.collection("calls")
.where("time", ">=", `${s}`)
.where("time", "<=", `${e}`)
.get()
.then(querySnapshot => {
querySnapshot.forEach(doc => {
coll.push({id: doc.id, data: doc.data()});
});
console.log(coll);
})
.catch(err => {
console.log(err);
});
})
关于javascript - 我正在尝试解析从 firebase 查询中获取的数据,但数据没有得到解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56388194/