Как ждать постоянного пользователя от firebase auth в React Native - PullRequest
0 голосов
/ 13 мая 2019

Я использую аутентификацию firebase в своем React Native App (через expo), аутентификация работает нормально через наблюдателя, включая постоянного пользователя:

import firebase from "firebase";

firebase.auth().onAuthStateChanged(user => {
    if (user) {
        this.props.setUser(user);
    }
}).bind(this);

Я показываю целевой экран с входом в систему / регистрацией, и если пользователь входит в систему с учетной записью, я пересылаю в основное приложение. После запуска приложения требуется несколько секунд, чтобы метод onAuthStateChanged сработал при загрузке постоянного пользователя, что заставило мое приложение на короткое время показать этот экран посадки, а затем уйти. Я бы предпочел, чтобы экран загрузки отображался до тех пор, пока состояние аутентификации не будет определено правильно.

Но если нет постоянного пользователя, onAuthStateChanged никогда не сработает, поэтому у меня нет конкретного события, чтобы ждать. Я мог бы использовать таймер тайм-аута, но это кажется плохим решением, поскольку необходимое время ожидания может сильно различаться в зависимости от оборудования и скорости соединения.

Как решить эту проблему правильно, т.е. как я узнаю, что нет постоянного пользователя?

1 Ответ

0 голосов
/ 13 мая 2019

Блокировка ошибок Firebase, когда пользователь не сохраняется

var isLoading = true;

   firebase.auth().onAuthStateChanged(user => {
        if (user) {
            isLoading = false;
            this.props.setUser(user);
        }
    }, error => {
       isLoading = false;
   }
}).bind(this);
...