【发布时间】:2019-12-20 00:21:09
【问题描述】:
我正在为我正在处理的网页使用 Firebase 的 Cloud Firestore。我当前设置为在添加/加入新用户时在“用户”集合中创建一个新文档。问题是当我尝试拉下用户列表以对其进行迭代时,我无法做到。
我尝试过迭代不同类型的循环。当控制台记录为 0 时,循环似乎不会以对象的长度运行。
let temp = [];
db.collection("Users").onSnapshot(res => {
const changes = res.docChanges();
changes.forEach(change => {
if (change.type === "added") {
temp.push({
id: change.doc.id,
email: change.doc.data().email
});
}
});
});
console.log(temp);
console.log(temp.length);
我预计第二个控制台日志为 2,但它输出 0。奇怪的是,当我从上面的控制台日志中查看对象时,它显示它的长度为 2,并显示其中的当前数据:
【问题讨论】:
-
那是因为数组被记录时是空的(因为数组填充在回调中,因此是异步的),然后,当您打开(扩展)数组时,值会更新,但不会顶层展示
标签: javascript firebase google-cloud-firestore