Saltar al contenido

Cómo verificar “el correo electrónico del usuario ya existe” en firebase usando Android Studio

Solución:

este método funciona para comprobar si el correo electrónico existía o no

 void checkEmailExistsOrNot(){
    firebaseauth.fetchSignInMethodsForEmail(email.getText().toString()).addOnCompleteListener(new OnCompleteListener<SignInMethodQueryResult>() {
        @Override
        public void onComplete(@NonNull Task<SignInMethodQueryResult> task) {
            Log.d(TAG,""+task.getResult().getSignInMethods().size());
            if (task.getResult().getSignInMethods().size() == 0){
                // email not existed
            }else {
                // email existed
            }

        }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            e.printStackTrace();
        }
    });
}

fetchProvidersForEmail es una llamada asíncrona, por lo que debe hacer uso de su valor de retorno con la devolución de llamada.

return true en el hilo principal no funcionará.

Esta es la solucion:

Primero crea una interfaz con el método (éxito)

public interface OnEmailCheckListener(){
 void onSuccess(boolean isRegistered);
} 

Su método checkEmail debería ser así:

public void isCheckEmail(final String email,final OnEmailCheckListener listener){
mAuth.fetchProvidersForEmail(email).addOnCompleteListener(new OnCompleteListener<ProviderQueryResult>()
{
    @Override
    public void onComplete(@NonNull Task<ProviderQueryResult> task)
    {
        boolean check = !task.getResult().getProviders().isEmpty();
        
        listener.onSuccess(check);
     
    }
});

}

Finalmente llame a su isCheckEmail así:

isCheckEmail("[email protected]",new OnEmailCheckListener(){
   @Override
   void onSuccess(boolean isRegistered){
    
     if(isRegistered){
           //The email was registered before
    } else {
           //The email not registered before
    }

   }
});

Espero que esto te ayude.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *