現在、私はFirebase認証を使用していて、間違ったユーザ名、パスワード、空のフィールドなど多くのエラーを処理しています。しかし、次のページにセグを追加し、データベースに存在しないランダムな電子メールを使用しようとすると、Firebaseの認証は私にエラーを与えず、次のページに渡します。 segueを削除してランダムなユーザーを置くと、segueで達成しようとしているユーザーを見つけることができないというエラーが表示されます。何が問題なのかアドバイスしてください。Firebase segue authentication
のAuthServiceファイル
func login(email: String, password: String, onComplete: Completion?) {
FIRAuth.auth()?.signIn(withEmail: email, password: password, completion: { (user, error) in
if error != nil {
self.handleFirebaseError(error: error! as NSError, onComplete: onComplete)
} else {
onComplete?(nil, user)
}
})
}
func handleFirebaseError(error: NSError, onComplete: Completion?) {
print(error.debugDescription)
if let errorCode = FIRAuthErrorCode(rawValue: error.code) {
switch (errorCode) {
case .errorCodeInvalidEmail:
onComplete?("Invalid email address", nil)
break
case .errorCodeWrongPassword:
onComplete?("Invalid password", nil)
break
case .errorCodeUserNotFound:
onComplete?("Can't find user", nil)
break
default:
onComplete?("There was a problem authentication. Try again", nil)
}
}
}
のViewController
@IBAction func loginBtnTapped(_ sender: Any) {
if let email = emailField.text, let pass = passwordField.text , (email.characters.count > 0 && pass.characters.count > 0) {
AuthService.instance.login(email: email, password: pass, onComplete: { (errMsg, data) in
guard errMsg == nil else {
self.alert(title: "Error Authentication", errMsg: errMsg!)
return
}
})
} else {
self.alert(title: "Username and password required", errMsg: "You must enter both a username and a password")
}
}
ありがとうございました!私はあなたの指示に従い、問題は解決されました! – Sargot
あなたは大歓迎です。あなたはあなたの質問に対する答えとしてこれを選ぶことができます。 :) – Glenn
既にそれをしました) – Sargot