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

后端 未结 2 845
北海茫月
北海茫月 2021-01-18 07:45

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 re

相关标签:
2条回答
  • 2021-01-18 08:38

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

    try {
      _firbaseAuth.createUserWithEmailAndPassword(
        email: 'foo@bar.com', 
        password: 'password'
      );
    } catch(signUpError) {
      if(signUpError is PlatformException) {
        if(signUpError.code == 'ERROR_EMAIL_ALREADY_IN_USE') {
          /// `foo@bar.com` 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.
    0 讨论(0)
  • 2021-01-18 08:52

    I think the only possibility from within the app is attempting a login (signInWithEmailAndPassword) with that e-mail and check the result.

    If it's invalid password, the account exists. If it's invalid account, the account do not exist.

    Error 17011
    There is no user record corresponding to this identifier. The user may have been deleted
    Error 17009
    The password is invalid or the user does not have a password
    

    As this is a kind of an ugly solution, you can justify this additional call using it to check it the e-mail formatting is correct (according to the firebase rules). If it doesn't comply it will throw a address is badly formatted and you can alert the user soon enough.

    You can do these checks using the error codes with current versions of the plug-in.

    0 讨论(0)
提交回复
热议问题