Cloud firestore和nextjs - getInitialProps和async数据

问题描述 投票:0回答:1

我试图使用nextjs中的getInitialProps方法检索文档。然而,它正在返回一个状态为“待定”的Promise。这是我的代码:

  static async getInitialProps(context) {
    const { id } = context.query;

    await db
      .collection('clients')
      .doc('JJqyDI8a1ILqnqmp2gcO')
      .get()
      .then(doc => ({
        data: doc.data(),
      }));

    console.log(data); // logs pending

    return {
      client: data,
    };
  }

我似乎也找不到任何例子。

async-await google-cloud-firestore next.js
1个回答
0
投票

所有异步函数都返回一个promise。

我不知道你是如何访问data的,因为当你在console.log时它已经超出了范围。

做这样的事情:

  static async getInitialProps(context) {
    const { id } = context.query;

    const data = await db
      .collection('clients')
      .doc('JJqyDI8a1ILqnqmp2gcO')
      .get()
      .then(doc => ({
        ...doc.data(),
      }));


    return {
      client: data,
    };
  }

这应该让props.client可以访问它

© www.soinside.com 2019 - 2024. All rights reserved.