如何使用FirebaseAuth错误代码? [英] How to use FirebaseAuth error codes?

查看:56
本文介绍了如何使用FirebaseAuth错误代码?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在Firebase中使用 AuthErrorCode ,但我不断收到错误消息.这是我的代码:

I'm trying to use the AuthErrorCode in Firebase but I keep getting errors. Here is my code:

private func handleErrors(err: NSError, loginHandler: LoginHandler?) {

    if let errCode = AuthErrorCode(rawValue: err.code) {

        switch errCode {

        case .errorCodeWrongPassword:  //Enum case 'errorCodeWrongPassword' not found in type 'AuthErrorCode'
            loginHandler?(LoginErrorCode.WRONG_PASSWORD)
            break

        case .errorCodeInvalidEmail:  //Enum case 'errorCodeInvalidEmail' not found in type 'AuthErrorCode'
            loginHandler?(LoginErrorCode.INVALID_EMAIL)
            break

        case .errorCodeUserNotFound:  //Enum case 'errorCodeUserNotFound' not found in type 'AuthErrorCode'
            loginHandler?(LoginErrorCode.USER_NOT_FOUND)
            break

        case .errorCodeEmailAlreadyInUse:  //Enum case 'errorCodeEmailAlreadyInUse' not found in type 'AuthErrorCode'
            loginHandler?(LoginErrorCode.EMAIL_ALREADY_IN_USE)
            break

        case .errorCodeWeakPassword:  //Enum case 'errorCodeWeakPassword' not found in type 'AuthErrorCode'
            loginHandler?(LoginErrorCode.WEAK_PASSWORD)
            break

        default:
            loginHandler?(LoginErrorCode.PROBLEM_CONNECTING)
            break

        }

    }

}

有人知道我在做什么错吗?如果您没有在我的代码中看到错误,则为:

Anyone know what I'm doing wrong? If you didn't see the errors in my code here they are:

Enum case 'errorCodeWrongPassword' not found in type 'AuthErrorCode'

Enum case 'errorCodeInvalidEmail' not found in type 'AuthErrorCode'

Enum case 'errorCodeUserNotFound' not found in type 'AuthErrorCode'

Enum case 'errorCodeEmailAlreadyInUse' not found in type 'AuthErrorCode'

Enum case 'errorCodeWeakPassword' not found in type 'AuthErrorCode'

让我知道你们是否有任何想法!

Let me know if you guys have any ideas!

推荐答案

它们在Swift中作为 AuthErrorCode.weakPassword 导入,例如:从所有大小写值中删除 errorCode

They are imported in Swift as AuthErrorCode.weakPassword for example: remove errorCode from all the case values.

private func handleErrors(err: NSError, loginHandler: LoginHandler?) {

    guard let errCode = AuthErrorCode(rawValue: err.code)
        else { return }

        switch errCode {

        case .wrongPassword:
            loginHandler?(LoginErrorCode.WRONG_PASSWORD) // Transform to wrongPassword
        case .invalidEmail:
            loginHandler?(LoginErrorCode.INVALID_EMAIL)
        case .userNotFound:
            loginHandler?(LoginErrorCode.USER_NOT_FOUND)
        case .emailAlreadyInUse:
            loginHandler?(LoginErrorCode.EMAIL_ALREADY_IN_USE)
        case .weakPassword:
            loginHandler?(LoginErrorCode.WEAK_PASSWORD)
        default:
            loginHandler?(LoginErrorCode.PROBLEM_CONNECTING)
        }
  
}



快速建议:



Swift suggestions:

  • 请勿在switch语句中使用 break ,它们在大小写完成后默认会中断( fallthrough 允许您在匹配后检查每个大小写)
  • NSError 切换为 Error (Firebase使用NSError,如果要切换到错误,请阅读
  • Don't use break in switch statements, they break by default after the case is done (fallthrough allows you to check each case after a match)
  • Switch NSError for Error (Firebase uses NSError, if you want to switch to Error read Swift 4 get error code from error)
  • Is LoginErrorCode your custom class ? Consider switching to Swift >= 3 syntax for the cases (lower camel case)

这篇关于如何使用FirebaseAuth错误代码?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆