«task.isSuccessful» всегда возвращает false в CreatewithUseremailandpassword - PullRequest
0 голосов
/ 18 декабря 2018

Я зарегистрировал пользователей с помощью метода createUserWithEmailAndPassword, и они зарегистрированы в моем проекте Firebase (я могу видеть их информацию).Но когда я пытаюсь войти с созданным адресом электронной почты и паролем, метод task.isSuccessful всегда возвращает false, а оператор else выполняется каждый раз.

Код для входа и регистрации:

private Button buttonRegister;
private EditText editTextEmail;
private EditText editTextPassword;
private TextView textViewSignin;

private ProgressDialog progressDialog;
private FirebaseAuth firebaseAuth;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    progressDialog=new ProgressDialog(this);
    firebaseAuth= FirebaseAuth.getInstance();


    buttonRegister = (Button) findViewById(R.id.buttonRegister);

    editTextEmail=(EditText) findViewById(R.id.editTextEmail);
    editTextPassword=(EditText) findViewById(R.id.editTextPassword);

    textViewSignin=(TextView) findViewById(R.id.textViewSignin);

    buttonRegister.setOnClickListener(this);
    textViewSignin.setOnClickListener(this);

    if(firebaseAuth.getCurrentUser()!=null){
        //start the profile activity
        finish();
        startActivity(new Intent(getApplicationContext(), ProfileActivity.class));
    }


}

private void registerUser(){
    String email=editTextEmail.getText().toString().trim();
    String password=editTextEmail.getText().toString().trim();

    if(TextUtils.isEmpty(email)){
        Toast.makeText(this, "Please enter E-mail first", Toast.LENGTH_SHORT).show();
        return;
    }

    if(TextUtils.isEmpty(password)){
        Toast.makeText(this, "Please enter password first", Toast.LENGTH_SHORT).show();
        return;
    }

    progressDialog.setMessage("Registerring User......");
    progressDialog.show();


    firebaseAuth.createUserWithEmailAndPassword(email, password)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    progressDialog.dismiss();
                    if(task.isSuccessful()){
                        finish();
                        startActivity(new Intent(getApplicationContext(), ProfileActivity.class));
                    }
                    else{
                        Toast.makeText(MainActivity.this, "Unable to Register! Please try again.", Toast.LENGTH_SHORT).show();
                    }
                }
            });


}

@Override
public void onClick(View v) {
    if(v == buttonRegister){
        registerUser();
    }

    if(v == textViewSignin){
        finish();
        startActivity(new Intent(this, LoginActivity.class));
    }

  }

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Попробуйте этот код

firebaseAuth.signInWithEmailAndPassword(email,password).addOnCompleteListener(this,new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {

    if (task.isSuccessful()) {
        finish();
        startActivity(new Intent(this, MainActivity.class));
    }
    else {
        try {
            throw task.getException();
        } 
        catch (FirebaseAuthInvalidCredentialsException e) {
            Toast.makeText(getApplicationContext(), "Invalid Password", Toast.LENGTH_LONG).show();
        }
        catch (FirebaseAuthEmailException e){
            Toast.makeText(getApplicationContext(), "Invalid Email", Toast.LENGTH_LONG).show();
        }
        catch (FirebaseAuthException e){
            Toast.makeText(getApplicationContext(), "Invalid Credentials", Toast.LENGTH_LONG).show();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

}
});

для более подробной информации посетите https://firebase.google.com/docs/auth/android/password-auth

0 голосов
/ 18 декабря 2018

@ Hemant Yadav

Вы проверили, какое исключение firebase дает, когда оно возвращает false?Пожалуйста, проверьте, какое исключение произошло в это время, используя следующий код:

task.getException() //which returns the exception that caused the Task to fail.

Проверьте и обновите, какое исключение вы получаете, мы можем помочь вам, или вы можете получить идею для его устранения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...