1
votes

Comment vérifier si l'utilisateur est déjà enregistré dans Firebase?

Je souhaite vérifier si l'utilisateur est déjà inscrit. Voici mon code. Veuillez aider. Merci.

fAuth           =  FirebaseAuth.getInstance();

    signUpBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if((validateName()||validateLastName()||validateEmail()||validatePassword()||validateRepeatPassword())!= true){
                String email = uEmail.getText().toString().trim();
                String password = uPassword.getText().toString().trim();
                fAuth.createUserWithEmailAndPassword(email,password);
                Toast.makeText(SignUpActivity.this,"Welcome!",Toast.LENGTH_SHORT).show();
                openPhoneActivity();
            }else {
                //here will be toast with something like "You are  already registered"
            }
            }
        });


0 commentaires

3 Réponses :


2
votes

La méthode createUserWithEmailAndPassword vérifiera si un e-mail existe déjà dans l'authentification Firebase. À partir de la documentation:

FirebaseAuthUserCollisionException levée s'il existe déjà un compte avec l'adresse e-mail donnée

Vous pouvez utiliser addOnCompleterListener () pour savoir si la création a réussi ou non:

                auth.createUserWithEmailAndPassword(email, password)
                        .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                            @Override
                            public void onComplete(@NonNull Task<AuthResult> task) {
                                if (!task.isSuccessful()) {
                                   Toast.makeText((getApplicationContext(), "Authentication failed: " + task.getException().getMessage(),Toast.LENGTH_SHORT).show();

https: / /firebase.google.com/docs/reference/android/com/google/firebase/auth/FirebaseAuth#public-taskauthresult-createuserwithemailandpassword-string-email,-string-password


0 commentaires

1
votes

auth.createUserWithEmailAndPassword(email, password)
                        .addOnCompleteListener(CurrentActivity.this, new OnCompleteListener<AuthResult>() {
                            @Override
                            public void onComplete(@NonNull Task<AuthResult> task) {
                                Toast.makeText(SignupActivity.this, "createUserWithEmail:onComplete:" + task.isSuccessful(), Toast.LENGTH_SHORT).show();
                                // If sign in fails, display a message to the user. If sign in succeeds
                                // the auth state listener will be notified and logic to handle the
                                // signed in user can be handled in the listener.
                                if (!task.isSuccessful()) {
                                    Toast.makeText(SignupActivity.this, "Authentication failed." + task.getException(),
                                            Toast.LENGTH_SHORT).show();
                                } else {
                                    //Do something here
                                    startActivity(new Intent(CurrentActivity.this, RedirectActivity.class));
                                    finish();
                                }
                            }
                        });


0 commentaires

0
votes

Une addOnCompleterListener () lancera FirebaseAuthUserCollisionException s'il existe déjà un compte avec l'adresse e-mail donnée. Vous pouvez vérifier si l'e-mail est déjà enregistré en suivant le code.

mAuth.createUserWithEmailAndPassword(signup_email, signup_password)
                            .addOnCompleteListener(SignupActivity.this, new OnCompleteListener<AuthResult>() {
                                @Override
                                public void onComplete(@NonNull Task<AuthResult> task) {
                                    if (task.isSuccessful()) {
                                        // Signup success
                                      
                                        Toast.makeText(SignupActivity.this,"Signup Successful!", Toast.LENGTH_SHORT).show();
                                        
                                    } else {
                                    
                                        // If signup fails, and user emial is already registered.
                                         if (task.getException() instanceof FirebaseAuthUserCollisionException) {
                                         
                                            Toast.makeText(SignupActivity.this,"Provided Email Is Already Registered!", Toast.LENGTH_SHORT).show();
                                            
                                        }

                                    }
                                }
                            });


0 commentaires