【发布时间】:2019-06-14 08:06:34
【问题描述】:
所以我目前正在尝试通过以下方式从 Cloud Firestore 中提取 Nuxt 中的数据:
async asyncData(){
return firebase.firestore().collection('test').doc().get()
.then((result) => {
result.forEach(doc => {
console.log(doc.data())
})
})
}
导致以下错误:
async asyncData() {
return _plugins_firebase_config__WEBPACK_IMPORTED_MODULE_0__["default"].firestore().collection('test').doc().get().then(result => {
result.forEach(doc => {
console.log(doc.data());
});
});
}
带有错误信息:
TypeError
result.forEach is not a function
在没有 forEach 的情况下提取数据可以正常工作。因此,如果我按名称指定文档并仅获取一个文档的数据,那么一切都会按预期工作。 但是,由于我需要整个数据集合,我必须通过 forEach 拆分数据。有什么想法可能导致这种情况吗? 相同的示例在 VueJS 本身中也可以正常工作。
我已经使用 nuxt cli 生成了一个新项目,所以项目设置应该没问题。
【问题讨论】:
-
forEach在 arrays 上工作。你的result是对象吗? -
使用
console.log(result)或debugger检查变量result -
结果不为空。 console.log(result) 工作正常,但当然只提供从 Firebase 返回的文档参考。 @ljubadr,是的,数据是一个数组。如前所述,在 VueJS 中做同样的事情很好,所以我猜肯定与 Nuxt 及其 asyncData 调用有关。
标签: firebase vue.js webpack google-cloud-firestore nuxt.js