Аутентификация Firebase.Общий запрос - PullRequest
0 голосов
/ 27 сентября 2019

В настоящее время я создаю собственное приложение и тестирую его, используя exp на физическом пикселе 2. Когда я загружаю свое приложение, у меня в componentDidMount есть следующее:

componentDidMount = () => {

    firebase.auth().onAuthStateChanged((user)=>{ 
        if (user) {
            //this.setState({userid: user.uid}); //I added this to see if it was the below slowing things down (it is not)
            firebase.database().ref('/Users/'+user.uid+'/Public/').once('value')
            .catch(err=>{console.log(err)})
            .then(snapshot=>{

                let username = snapshot.child('Username').val();
                    this.setState({username: username, userid: user.uid});
                });

        } else {

            this.setState({ user: null, username: null});
        }

    });}

Моя цель состоит в том, чтобынаправьте пользователя на страницу входа, если он не аутентифицирован.В противном случае погрузитесь прямо во внутренние страницы.Мой код вроде работает, и это действительно происходит (ура!).

Однако, когда я загружаю свое приложение, требуется несколько секунд (возможно, 10 секунд), чтобы приложение поняло, что я уже вошел в систему. Это означает, что оно отображает страницу входа в течение 10 секунд.а затем начинает отображать внутренние страницы.Кто-нибудь понимал, почему регистрация .onAuthStateChanged занимает так много времени, что я на самом деле все еще вошел в систему с моего последнего сеанса?И могу ли я узнать, нахожусь ли я на странице входа, потому что я не вошел в систему вообще, или потому что приложение еще не понимает, что я вошел в систему?Пользователю очень неудобно входить в систему каждый раз, а затем вводить свои данные, входя в систему, lol!

Как всегда, вся помощь очень ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...