NextJS: Ожидание данных из Google Firestore - PullRequest
0 голосов
/ 16 мая 2019

Итак, я пытаюсь получить данные из Google Firestore и использую фреймворк NextJS.

Index.getInitialProps = async function () {
  const db = await loadDB()
  let data = []
  db.firestore().collection('data').get().then(querySnapshot => {
    querySnapshot.forEach(doc => {
      data.push(doc.data())
      console.log(data)
    })
  })

  return {
    data
  }
}

Итак, на моем "сервере" я получаю данные, но в моем компоненте Index они просто остаются пустым массивом ... кто-нибудь знает, что мне здесь не хватает, чтобы получить данные для компонента?

Я предполагаю, что это где-то ждет ...

1 Ответ

1 голос
/ 16 мая 2019

Если вам интересно, где должен быть пропавший await, есть только одно место. Он работает только с обещаниями, а get() возвращает обещание, так как запрос к Firestore не сразу завершается.

async function () {
  const db = await loadDB()
  let data = []
  const querySnapshot = await db.firestore().collection('data').get()
  querySnapshot.forEach(doc => {
    data.push(doc.data())
    console.log(data)
  })

  return {
    data
  }
})
...