How to Handle Firebase Auth exceptions on flutter

前端 未结 12 1118
走了就别回头了
走了就别回头了 2020-11-30 07:56

Please does anyone know how to catch firebase Auth exceptions on flutter and display them?

Note: I am not interested in the console (catcherror((e) print(e))

12条回答
  •  青春惊慌失措
    2020-11-30 08:36

    NEW ANSWER (18/09/2020)

    If you are using firebase_auth: ^0.18.0, error codes have changed!

    For instance: ERROR_USER_NOT_FOUND is now user-not-found

    I could not find any documentation about that, so I went into the source code and read comments for every error codes. (firebase_auth.dart)

    I don't use all error codes in my app (e.g verification, password reset...) but you will find the most common ones in this code snippet:

    (It handles old and new error codes)

    String getMessageFromErrorCode() {
        switch (this.errorCode) {
          case "ERROR_EMAIL_ALREADY_IN_USE":
          case "account-exists-with-different-credential":
          case "email-already-in-use":
            return "Email already used. Go to login page.";
            break;
          case "ERROR_WRONG_PASSWORD":
          case "wrong-password":
            return "Wrong email/password combination.";
            break;
          case "ERROR_USER_NOT_FOUND":
          case "user-not-found":
            return "No user found with this email.";
            break;
          case "ERROR_USER_DISABLED":
          case "user-disabled":
            return "User disabled.";
            break;
          case "ERROR_TOO_MANY_REQUESTS":
          case "operation-not-allowed":
            return "Too many requests to log into this account.";
            break;
          case "ERROR_OPERATION_NOT_ALLOWED":
          case "operation-not-allowed":
            return "Server error, please try again later.";
            break;
          case "ERROR_INVALID_EMAIL":
          case "invalid-email":
            return "Email address is invalid.";
            break;
          case "ERROR_USER_NOT_FOUND":
          case "user-not-found":
            return "No account found with this email";
            break;
          default:
            return "Login failed. Please try again.";
            break;
        }
      }
    

提交回复
热议问题