Cloud Firestore和NextJS-getInitialProps和异步数据

时间:2019-04-24 04:47:29

标签: async-await google-cloud-firestore next.js

我正在尝试使用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,
    };
  }

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

1 个答案:

答案 0 :(得分: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

可以访问它