В настоящее время я создаю собственное приложение и тестирую его, используя 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!
Как всегда, вся помощь очень ценится.