我正在使用 Firebase 的 isEmailVerified
方法来验证电子邮件。以下是代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_verifying);
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
mAuth=FirebaseAuth.getInstance();
spinner=(ProgressBar)findViewById(R.id.progressBar);
spinner.setVisibility(View.GONE);
Log.e("I am launched","hello");
if(user.isEmailVerified()==true){
Log.e("I am here","hello");
State state= new AccountSettingUp(this);
state.doAction();
} else {
Log.e("Maybe i am here","yes");
user.sendEmailVerification()
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Log.d("email", "Email sent.");
}
}
});
}
此处,else
代码应仅在电子邮件未验证时运行。但是,即使在我验证了电子邮件并重新启动 Activity 之后,if
语句也不是 true
,并且再次发送了电子邮件。
最佳答案
此行为似乎是 Firebase 身份验证当前版本 (10.0.1) 中的一个限制,可能是一个错误。 this related question 中报告了相同的问题.
我尝试做 reload()电子邮件验证后的用户数据。那没有帮助。如相关问题中所述,似乎需要注销/登录才能获得新的电子邮件验证状态。
关于android - 电子邮件未在 Firebase 中验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40963875/