【问题标题】:After verifying email, isEmailVerified is return false in first time of call and in the second time of call is returning true验证电子邮件后,isEmailVerified 第一次调用返回 false,第二次调用返回 true
【发布时间】:2020-03-28 22:24:09
【问题描述】:

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

当我通过单击其中的链接验证电子邮件时,当我单击按钮 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();
    }

}

【问题讨论】:

    标签: android firebase-authentication email-verification


    【解决方案1】:

    你不能在代码中做任何事情,它可能是 Firebase 端错误,在邮件中验证后 bcz,或者重置邮件,emailverify 在 firebase 中变为 true,它可能是 firebase 端错误。

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

    更新 Firebase 身份验证 gradle 版本。并检查此link。使用适合您的代码..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-29
      • 2017-03-31
      • 2020-04-13
      • 1970-01-01
      • 2019-12-09
      相关资源
      最近更新 更多