我正在嘗試使用 firebase 在 android studio 中開發一個應用程序,用戶在注冊后驗證他們的電子郵件地址。但即使在驗證了電子郵件地址之后,每當我再次打開應用程序時,它都會將我轉發到發送電子郵件驗證碼頁面。但是,如果我清除應用程序數據,則不存在同樣的問題。我嘗試使用 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 回答

子衿沉夜
TA貢獻1828條經驗 獲得超3個贊
出現此問題的原因是 FirebaseUser 對象默認緩存在應用程序中。這就是清除應用程序數據時沒有問題的原因。FirebaseAuth.getCurrentUser().reload()在您的應用程序啟動時修復此調用。
mAuth=FirebaseAuth.getInstance();
user=mAuth.getCurrentUser();
user.reload()
if(!user.isEmailVerified()){
startActivity(new Intent(HomePage.this,VerifyEmail.class));
}
添加回答
舉報
0/150
提交
取消