Nuxt-result.forEach不是函数吗?

时间:2019-01-20 22:01:29

标签: firebase vue.js webpack google-cloud-firestore nuxt.js

所以我目前正在尝试通过以下方式从Cloud Firestore中的Nuxt内部提取数据:

ViewChild

这将导致以下错误:

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());
      });
    });
  }

在不使用forEach的情况下拉取数据的效果很好。因此,如果我通过名称指定doc并仅获取一个文档的数据,那么一切都会按预期进行。 但是,由于我需要整个数据收集,因此我必须通过forEach拆分数据。有什么想法会导致这种情况吗? 相同的示例在VueJS本身中也可以正常工作。

我已经使用nuxt cli生成了一个新项目,因此项目设置应该没问题。

1 个答案:

答案 0 :(得分:0)

首先获取并修改您的数据,然后将其返回。

修改您的代码,使其看起来像这样:

async asyncData () {

    let data = []

    await firebase.firestore()
    .collection('test')
    .doc()
    .get()
    .then((result) => {
      result.forEach(doc => {

        data.push(doc.data())    

      })       
    })

    return data
}