Как обновить данные пользователя в Firebase Authentication - PullRequest
1 голос
/ 01 июня 2019

Я пытаюсь разработать приложение в Android Studio, используя FireBase, где пользователь проверяет свой адрес электронной почты после регистрации. Но даже после проверки адреса электронной почты, всякий раз, когда я снова открываю приложение, оно пересылает меня на кодовую страницу подтверждения отправки электронной почты. Однако, если я очищаю данные приложения, такой же проблемы не существует.

Я пытался использовать AuthStateListener (не зная об этом много), но это не сработало.

вот код, который я пробовал. Я тоже пробовал без authstatelistener, но та же проблема продолжалась

   mAuth=FirebaseAuth.getInstance();
    user=mAuth.getCurrentUser();
    authStateListener=new FirebaseAuth.AuthStateListener() {
        @Override
        public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
            if(!user.isEmailVerified()){
                startActivity(new Intent(HomePage.this,VerifyEmail.class));
            }
        }
    };

Это приводит к проверке страницы электронной почты, если я открываю ее в телефоне, где я зарегистрировался. Но после очистки данных он не пересылает меня на эту страницу.

1 Ответ

0 голосов
/ 02 июня 2019

Причиной этой проблемы является то, что объект FirebaseUser кэшируется в приложении по умолчанию. Вот почему нет проблем, когда данные приложения очищаются. Чтобы исправить этот вызов FirebaseAuth.getCurrentUser().reload() при запуске приложения.

mAuth=FirebaseAuth.getInstance();
user=mAuth.getCurrentUser();
user.reload()
if(!user.isEmailVerified()){
     startActivity(new Intent(HomePage.this,VerifyEmail.class));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...