[英]Swift 4 Firebase Auth custom error code
我嘗試使用以下代碼為Firebase Auth定義自定義錯誤代碼:
extension AuthErrorCode {
var errorMessage: String {
switch self {
case .emailAlreadyInUse:
return "Ezzel a névvel már létezik rendezvény"
case .invalidEmail:
return "Hibás formátum: Rendezvény neve. Kérlek ne használj speciális karaktereket és szóközt"
case .userNotFound:
return "Ezzel a névvel nem létezik rendezvény"
case .networkError:
return "Hálózat nem elérhető. Próbáld meg később"
case .weakPassword:
return "A jelszó túl gyenge. Legalább 6 karakter hosszúnak kell lennie."
case .wrongPassword:
return "Hibás jelszó"
default:
return "Unknown error occurred"
}
}
}
並在checkLogin()方法中達到以下代碼后:
func checkLogin(){
if eventNameTextField.text != "" && passwordTextField.text != "" {
let eventname = eventNameTextField.text! + "@somemail.com"
Auth.auth().signIn(withEmail: eventname, password: passwordTextField.text!, completion: { (user, error) in
if user != nil {
self.performSegue(withIdentifier: "goToMain", sender: self)
}
else{
if let myError = AuthErrorCode(rawValue: (error?._code)!) {
self.errorLabel.text = myError.errorMessage
print(myError.errorMessage)
}
}
})
}
else {
self.errorLabel.text = "A mezők kitöltése kötelező"
}
}
如果我嘗試創建一個新用戶,則可以正常工作,但是當我嘗試使用錯誤的密碼(或無效的用戶名)登錄時,它會顯示
“線程1:致命錯誤:展開一個可選值時意外發現為零”
到self.errorLabel.text = myError.errorMessage
https://i.stack.imgur.com/HGqov.png
如果我除去標簽,則它工作正常,並在控制台中顯示錯誤代碼。
您的errorLabel
為零。 其結果是,當你嘗試分配myError.errorMessage
到errorLAbel.text
崩潰。 當前代碼的問題是,訪問其文本值時不會實例化errorLabel。
創建新用戶時,您的應用程序可以正常工作,因為您沒有為errorLabel
分配任何內容。
從快照中,我假設您正在使用xib或情節提要。 然后將errorLabel與@IBOutlet斷開連接。 您正在初始化之前訪問標簽。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.