Firebase身份验证不成功,Android

时间:2019-09-29 04:41:50

标签: android firebase firebase-authentication

我正在使用Andrid Studio和Firebase向用户注册电子邮件,名称,地址和密码。当我单击向数据库注册用户时,它可能无法成功注册,并转到else语句,该任务未成功。

我已经在Firebase上手动添加了登录电子邮件,但是场景与用户未登录的情况相同...

我很困惑,不知道我做错了什么...我正在关注本教程,而我正在关注的教程也做了同样的事情...

这是M Sigup ...

public class AdminSignUp extends AppCompatActivity {

TextView textLogin;
Button btnSignup;
EditText AdminId,EmailAdmin,AdminName,AdminPassword,PhoneNO,Address;
private ProgressDialog progressDialog;
private FirebaseAuth mAuth;
DatabaseReference databaseAdminRegistration;

@Override
public void onBackPressed() {
    super.onBackPressed();
    startActivity(new Intent(AdminSignUp.this,MainActivity.class));
}

@Override
protected void onRestart() {
    super.onRestart();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_admin_sign_up);

    progressDialog = new ProgressDialog(this);
    mAuth = FirebaseAuth.getInstance();

    textLogin=findViewById(R.id.txtLogin);
    btnSignup=findViewById(R.id.ButtonAdminSignUp);

    AdminId=findViewById(R.id.edtAdminId);
    EmailAdmin=findViewById(R.id.admiemail);
    AdminName=findViewById(R.id.edtAdminName);
    AdminPassword=findViewById(R.id.edtAdminPassword);
    PhoneNO=findViewById(R.id.edtAdminPhNo);
    Address=findViewById(R.id.edtAdminAddress);



    btnSignup.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            FunRegisterAdmin();
           // Toast.makeText(AdminSignUp.this, "IN PROGRESS", Toast.LENGTH_SHORT).show();
        }
    });

    textLogin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startActivity(new Intent(AdminSignUp.this,AdminLogin.class));
        }
    });
}

private void FunRegisterAdmin()
{
    String email = EmailAdmin.getText().toString().trim().toLowerCase();
    String password = AdminPassword.getText().toString().trim();
    final String name= AdminName.getText().toString().trim();
    if (TextUtils.isEmpty(email)|| !android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()){
        EmailAdmin.setError("Please Enter a Valid Email");
        return;
    }
    if (TextUtils.isEmpty(password)|| password.length() < 4 || password.length() > 10){
        AdminPassword.setError("Enter The Password");
        return;
    }
    if(TextUtils.isEmpty(name))
    {
        Toast.makeText(this,"Please Enter NAme",Toast.LENGTH_LONG).show();
        return;
    }
    progressDialog.setMessage("Registering User...");
    progressDialog.show();
    mAuth.createUserWithEmailAndPassword(email,password)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()){
                        String id = FirebaseAuth.getInstance().getCurrentUser().getUid();
                        DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("Employee");
                        reference.child(id).child("Name").setValue(name);
                        Toast.makeText(AdminSignUp.this, "Registered Successfully", Toast.LENGTH_LONG).show();
                    }else {

                        Toast.makeText(AdminSignUp.this, "Not Registered...",Toast.LENGTH_LONG).show();
                    }
                    progressDialog.dismiss();
                }
            });
}

}

这是我的登录名

public class AdminLogin extends AppCompatActivity {

TextView SignUPText;
EditText AdminEmail,AdminPassword;
Button AdminLoginBtn;

FirebaseAuth mAuth;
ProgressDialog progressDialog;

@Override
public void onBackPressed() {
    super.onBackPressed();
    startActivity(new Intent(AdminLogin.this,MainActivity.class));
}

@Override
protected void onRestart() {
    super.onRestart();
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_admin_login);

    progressDialog = new ProgressDialog(this);
    mAuth = FirebaseAuth.getInstance();
    SignUPText= findViewById(R.id.txtSignUp);
    AdminEmail= findViewById(R.id.edtEmailAdminLogin);
    AdminPassword= findViewById(R.id.edtPasswordAdminLogin);
    AdminLoginBtn=findViewById(R.id.ButtonAdminLogin);


    SignUPText.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startActivity(new Intent(AdminLogin.this,AdminSignUp.class));
        }
    });
    AdminLoginBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            AdminLoginFunc();
            //Toast.makeText(AdminLogin.this, "ADMIN LOGIN IN PROGRESS", Toast.LENGTH_SHORT).show();
        }
    });


}

private void AdminLoginFunc() {

    String email = AdminEmail.getText().toString().trim().toLowerCase();
    String password = AdminPassword.getText().toString().trim();
    if (TextUtils.isEmpty(email)|| !android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()){
        AdminEmail.setError("enter a valid email address");
        return;
    }
    if ((TextUtils.isEmpty(password)|| password.length() < 4 || password.length() > 10)){
        AdminPassword.setError("enter a correct Password");
        return;
    }
    progressDialog.setMessage("Please Wait...");
    progressDialog.show();
    mAuth.signInWithEmailAndPassword(email,password)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {

                        Toast.makeText(AdminLogin.this, "Login Successfully", Toast.LENGTH_SHORT).show();
                    }else {
                        Toast.makeText(AdminLogin.this, "Unable to Login.",Toast.LENGTH_SHORT).show();
                        //updateUI(null);
                    }
                    progressDialog.dismiss();
                }
            });

}

}

Manually added users for signin but not working for signin

1 个答案:

答案 0 :(得分:1)

您应该尝试记录任务结果的值,并查看失败的原因。

签出

的值
task.getException().getMessage()
task.getException().getErrorCode()

您可以在此处看到错误代码 https://developers.google.com/android/reference/com/google/firebase/auth/FirebaseAuthInvalidUserException

还要确保您已从firebase身份管理控制台启用了firebase用户注册。