Ошибка при попытке получить доступ к логину на основе Firebase - PullRequest
0 голосов
/ 14 марта 2019

Ошибка: Я пытаюсь войти в систему с зарегистрированным адресом электронной почты и паролем, но получаю сообщение об ошибке, firebase.auth.FirebaseAuthInvalidCredentialsException: пароль недействителен или у пользователя нет пароля.

Ожидается: Для входа в систему зарегистрированный адрес электронной почты и пароль

Решены проблемы: Повторно добавлен файл json службы Google

Это журналы:

03-14 11: 24: 54,378 16373-16373 / com.jaytailor45.fbproject D / FirebaseApp: Уведомление слушателей состояния авторизации. 03-14 11:24:54,378 16373-16373 / com.jaytailor45.fbproject D / FirebaseApp: уведомлено 0 аутентификация государственные слушатели. 03-14 11: 25: 08.585 16373-16373 / com.jaytailor45.fbproject W / BiChannelGoogleApi: [FirebaseAuth:] getGoogleApiForMethod () вернул Gms: com.google.firebase.auth.api.internal.zzal@b8c5b14 03-14 11: 25: 09.414 16373-16373 / com.jaytailor45.fbproject W / firebase: signInWithEmail: отказ com.google.firebase.auth.FirebaseAuthInvalidCredentialsException: пароль недействителен или у пользователя нет пароля. на com.google.firebase.auth.api.internal.zzds.zzb (неизвестный источник) на com.google.firebase.auth.api.internal.zzew.zza (неизвестный источник) на com.google.firebase.auth.api.internal.zzeo.zzc (неизвестный источник) на com.google.firebase.auth.api.internal.zzep.onFailure (неизвестный источник) на com.google.firebase.auth.api.internal.zzdy.dispatchTransaction (Неизвестно Источник) на com.google.android.gms.internal.firebase_auth.zzb.onTransact (Неизвестно Источник) at android.os.Binder.execTransact (Binder.java:458) 03-14 11: 27: 14.167 16373-20522 / com.jaytailor45.fbproject D / FA: событие ведения журнала (FE): user_engagement (_e), Bundle [{firebase_event_origin (_o) = auto, engagement_time_msec (_et) = 139692, firebase_screen_class (_sc) = MainActivity, firebase_screen_id (_si) = - 6317095346979771825}]

Дан код, вызывающий ошибку:

l_btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            final String email = l_email.getText().toString();
            final String pass = l_pass.getText().toString();
            mAuth.signInWithEmailAndPassword(email,pass)
                    .addOnCompleteListener(MainActivity.this, new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            Toast.makeText(MainActivity.this,email + pass, Toast.LENGTH_SHORT).show();
                            if (task.isSuccessful()) {
                                Log.d("firebase", "signInWithEmail:success");
                                FirebaseUser user = mAuth.getCurrentUser();
                                startActivity(new Intent(getApplicationContext(),home.class));
                                finish();
                            } else {
                                Log.w("firebase", "signInWithEmail:failure", task.getException());
                                Toast.makeText(getApplicationContext(), "Authentication failed.",Toast.LENGTH_SHORT).show();
                            }
                        }
                    });
        }
    });

1 Ответ

1 голос
/ 14 марта 2019

Следуйте приведенному ниже коду, который вы могли бы получить.

1) Зарегистрируйте активность.

Вызовите эту функцию при нажатии кнопки.

//Entry on firebase-auth
private void register_user(final String display_name, String email, String password) {
    mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {

            if (task.isSuccessful()) {
                FirebaseUser current_user = FirebaseAuth.getInstance().getCurrentUser();
                String Uid = current_user.getUid();


                mDatabase = FirebaseDatabase.getInstance().getReference().child("Users")
                        .child(Uid);
                HashMap<String, String> userHashmap = new HashMap<>();

                userHashmap.put("name", display_name);
                userHashmap.put("status", "Hi there! i am using Phoenix ChatApp");
                userHashmap.put("image", "default");
                userHashmap.put("thumb_image", "default");

                // Generating Device Token
                final String curr_user = mAuth.getCurrentUser().getUid();
                final String device_token = FirebaseInstanceId.getInstance().getToken();

                mDatabase.setValue(userHashmap).addOnCompleteListener(new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(@NonNull Task<Void> task) {
                        if (task.isSuccessful()) {
                            mUserDatabase.child(curr_user).child("devie_token")
                                    .setValue(device_token).addOnSuccessListener(new OnSuccessListener<Void>() {
                                @Override
                                public void onSuccess(Void aVoid) {
                                    mRegProgress.dismiss();
                                    Intent mainIntent = new Intent(RegisterActivity.this, MainActivity.class);
                                    mainIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

                                    startActivity(mainIntent);
                                    finish();

                                }
                            });

                        }
                    }
                });


            } else {
                mRegProgress.hide();
                Toast.makeText(RegisterActivity.this, "Cannot Sign Up,Please Check The Form And Try Again.", Toast.LENGTH_SHORT).show();
            }
        }
    });


}

2) Активность при входе в систему

Я вызвал эту функцию в событии Click кнопки входа в систему.


private void login_user(String email, String password) {
        mAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {

                if (task.isSuccessful()) {
                    String curr_user = mAuth.getCurrentUser().getUid();
                    String device_token = FirebaseInstanceId.getInstance().getToken();

                    mUserDatabase.child(curr_user).child("devie_token")
                            .setValue(device_token).addOnSuccessListener(new OnSuccessListener<Void>() {
                        @Override
                        public void onSuccess(Void aVoid) {

                            mLoginProgress.dismiss();
                            Intent mainIntent = new Intent(LoginActivity.this, MainActivity.class);
                            mainIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                            startActivity(mainIntent);
                            finish();

                        }
                    });


                } else {
                    String error = "";
                    try {
                        throw task.getException();
                    } catch (FirebaseAuthInvalidUserException e) {
                        error = "Invalid Email!";
                    } catch (FirebaseAuthInvalidCredentialsException e) {
                        error = "Invalid Password!";
                    } catch (Exception e) {
                        error = "Default error!";
                        e.printStackTrace();
                    }
                    mLoginProgress.hide();
                    Toast.makeText(LoginActivity.this, error, Toast.LENGTH_LONG).show();

                }
            }
        });
    }

Надеюсь, это может вам помочь.

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