@Sneiksus

Как пофиксить данную проблему с firebase и await?

Есть такая проблема
export async function updateLessons() { 
  let data
  await database().goOnline().then(async () => {
    await database()
    .ref('days')
    .on('value', snapshot => {
      console.log(snapshot.val())
      data = snapshot.val();
    });
  });

  return data;
}
Использую данную функцию для обновления данных при свайпе вниз

const onRefresh = React.useCallback(async () => {
    setRefreshing(true);
    setLessons(await updateLessons());
    console.log(lessons)
    setRefreshing(false);
  }, []);

Она вызывается из scroll view (refreshcontrol)

Проблема в том, что оно не работает синхронно. В console.log(snapshot) я вижу свой данные. Но приложение не ждет пока выполнится функция и в console.log(lessons) undefined. Как я могу это исправить?
  • Вопрос задан
  • 38 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Denioo
У вас console.log(lessons) синхронная функция, вынесите ее за пределы useCallback и увидите результат.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы