После проверки электронной почты 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();
    }

}

person Nikunj Patel    schedule 04.12.2019    source источник


Ответы (1)


Вы не можете ничего сделать в коде, это может быть ошибка стороны Firebase, bcz после проверки по почте или сброс почты, emailverify становится истинным в firebase, это может быть ошибка стороны firebase.

Или код может измениться в соответствии с версией аутентификации Firebase.

Обновите версию Gradle Firebase Auth. И проверьте эту ссылку. Используйте код, который будет работать с вами ..

person Community    schedule 04.12.2019