验证电子邮件后,isEmailVerified 在第一次呼叫时返回 false,在第二次呼叫时返回 true



以下是按钮的代码。 电子邮件发送成功。

当我通过单击其中的链接来验证电子邮件时,当我单击按钮后user.isEmailVerified第一次返回false

但是当我第二次按下按钮时,user.isEmailVerified返回true.为什么第一次尝试时不返回true

public void signin(View view)
{
firstName = firstNameET.getText().toString();
lastName = lastNameET.getText().toString();
yearOfBirth = yearOfBirthET.getText().toString();
contact = contactET.getText().toString();
city = cityET.getText().toString();
pincode = pincodeET.getText().toString();
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
user.reload();
if(user.isEmailVerified())
{
Log.i("Email","Email is verified.");
if(!(TextUtils.isEmpty(firstName)
&& TextUtils.isEmpty(lastName)
&& TextUtils.isEmpty(yearOfBirth)
&& TextUtils.isEmpty(contact)
&& TextUtils.isEmpty(city)
&& TextUtils.isEmpty(pincode)))
{
if(contact.length() == 10)
{
progressDialog.show();
final DatabaseReference mChild = databaseReference.child("Users").child(user.getUid());
mChild.child("First Name").setValue(firstName);
mChild.child("Last Name").setValue(lastName);
mChild.child("Year of birth").setValue(yearOfBirth);
if(spinner.getSelectedItem().toString() == "Male")
{
mChild.child("Gender").setValue("Male");
}
else
{
mChild.child("Gender").setValue("Female");
}
mChild.child("Contact").setValue(contact);
mChild.child("City").setValue(city);
mChild.child("Pincode").setValue(pincode);
if(imageUri != null)
{
final StorageReference mStorageReference = storageReference.child("Profile Picture").child(imageUri.getLastPathSegment());
mStorageReference.putFile(imageUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
mStorageReference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
mChild.child("Profile Picture").setValue(uri.toString());
}
});
}
});
}
progressDialog.dismiss();
}
else
{
Toast.makeText(this, "Enter valid contact number.", Toast.LENGTH_SHORT).show();
}
}
}
else
{
Log.i("Email","not verified");
alertDialog.show();
}
}

您无法在代码中执行任何操作,可能是 Firebase 端错误、在邮件中验证后的 bcz 或重置邮件,电子邮件验证在 Firebase 中变为 true,可能是 firebase 端错误。

或者代码可以根据 Firebase 身份验证版本进行更改。

更新 Firebase 身份验证分级版本。并检查此链接。使用与您一起使用的代码。

最新更新