我如何从Firestore中的nuxt中的asyncData返回数组以进行SSR?

时间:2019-05-08 18:08:24

标签: arrays google-cloud-firestore nuxt.js ssr

我正在尝试让我的应用使用asyncData在SSR中的Firestore中以数组形式呈现数据。我在asyncData之外的函数运行正常,但无法在内部运行。

我尝试了很多方法来从asyncData获取数组以进行渲染。我试图将数据返回到“附加组件”上,以便以与我的方法相同的方式填写表格。

这是我的工作方式

async getAddons() {
      var addonsRef = db
        .collection('addons')
        .where('publish', '==', true)
        .orderBy('timeUpdated', 'desc');
      await addonsRef.get().then(snapshot => {
        snapshot.forEach(doc => {
          const addons = {
            ...doc.data(),
            id: doc.id
          };
          return this.addons.push(addons);
        });
      });
    },

这是我当前在asyncData中尝试的代码

async asyncData({ app, error }) {
    const addonsRef = await db
      .collection('addons')
      .where('publish', '==', true)
      .orderBy('timeUpdated', 'desc');
    try {
      await addonsRef.get().then(snapshot => {
        snapshot.forEach(doc => {
          const addons = {
            ...doc.data(),
            id: doc.id
          };
          return app.addons.push(addons);
        });
      });
    } catch (e) {
      // TODO: error handling
      console.error(e);
    }
    return app.addons.push(addons);
  },

我希望asyncData代码可以填充数组,以便它与getAddons函数一样填充我的模板。

我缺少什么简单的东西?

1 个答案:

答案 0 :(得分:0)

您应该从asyncData返回字典。例如。

{
 something:  app.addons.push(addons)
}

然后在模板中,您可以通过{{something. }}

进行访问