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"
}
}
});
3 Réponses :
La méthode createUserWithEmailAndPassword vérifiera si un e-mail existe déjà dans l'authentification Firebase. À partir de la documentation:
FirebaseAuthUserCollisionExceptionlevé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();
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();
}
}
});
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();
}
}
}
});