javascript - 无法访问集合 Firestore 中的文档
问题描述
我有一组来自 firestore 的对象all_categories
。
let docID = getStoreID();
let all_categories = [];
db
.collection("STORES")
.doc(docID)
.collection("CATEGORIES")
.orderBy("CAT_ADDED_ON","desc")
.limit(5).get().then((querySnapshot) => {
querySnapshot.forEach((doc) => {
all_categories.push(doc.data())
})
})
当我console.log(all_categories)
它显示它有 2 个对象但是当我尝试遍历它们时它显示undefiened
。
像这样:
all_categories.forEach(category => {
console.log(category)
})
控制台不打印任何内容。
可能是什么问题?
解决方案
从数据库中检索数据是一个异步过程,您可以then
像这样在前一个完成后将另一个附加到它,它将运行后一个。
db.collection("STORES")
.doc(docID)
.collection("CATEGORIES")
.orderBy("CAT_ADDED_ON","desc")
.limit(5)
.get()
.then((querySnapshot) => { querySnapshot.forEach((doc) => { all_categories.push(doc.data())})
.then(()=>{ all_categories.forEach(category => { console.log(category) })
})
推荐阅读
- c# - 由于无法加载文件或程序集'Newtonsoft.Json而出现错误
- angular - 连接 2 个输入字段值并以角度执行 POST 操作
- javascript - 滚动到带有 jquery 动画的主页部分
- gitlab - 是否可以在生产环境中同时在 Gitlab 中使用两个版本的文件?
- django - Django - 选择列表中的所有模型对象
- jquery - 图像突发onclick在jquery中不起作用
- sql-server - 为什么我们需要在 currentdb.tabledefs.append 之后压缩和修复数据库
- opendaylight - 使用“ovs-vsctl show”命令找不到OVSDB创建的OVS网桥
- php - Yii 中允许的内存大小为 134217728 字节已用尽(尝试分配 5568 字节)
- vespa - 在 vespa 中启用 CORS