Облачный Firestore и nextjs - getInitialProps и асинхронные данные - PullRequest
0 голосов
/ 24 апреля 2019

Я пытаюсь получить документ, используя метод getInitialProps из nextjs.Однако он возвращает Обещание с состоянием «в ожидании».Вот мой код:

  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 голосов
/ 24 апреля 2019

Все асинхронные функции возвращают обещание.

Я не вижу, как вы получаете доступ к 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

...