Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check if an email already exists in Firebase Auth in Flutter App

I'm currently developing a flutter app that requires users to register before using it. I use Firebase Authentication and would like to check whether an email is already registered in the app.

I know the easy way to do it is to catch the exception when using the createUserWithEmailAndPassword() method (as answered in this question). The problem is that I ask for the email address in a different route from where the user is registered, so waiting until this method is called is not a good option for me.

I think the best option would be to use the method fetchProvidersForEmail(), but I can't seem to make it work.

How do I use that method? Or is there a better option to know if an email is already registered?

like image 343
Iule Avatar asked Aug 02 '18 11:08

Iule


1 Answers

The error raised is a PlatformException so you can do something as follows-

try {
  _firbaseAuth.createUserWithEmailAndPassword(
    email: '[email protected]', 
    password: 'password'
  );
} catch(signUpError) {
  if(signUpError is PlatformException) {
    if(signUpError.code == 'ERROR_EMAIL_ALREADY_IN_USE') {
      /// `[email protected]` has alread been registered.
    }
  }
}

The following error codes are reported by Firebase Auth -

  • ERROR_WEAK_PASSWORD - If the password is not strong enough.
  • ERROR_INVALID_EMAIL - If the email address is malformed.
  • ERROR_EMAIL_ALREADY_IN_USE - If the email is already in use by a different account.
like image 65
Sakchham Avatar answered Sep 16 '22 11:09

Sakchham