我正在尝试使用 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
提交
取消