我使用Firebase身份验证设置了登录场景。在输入正确的细节时,场景应该通过执行“loggedIn”segue进行更改。在输入不正确的细节时,错误应该打印到控制台并且什么都不应该发生。iOS swift firebase auth不正确登录
我发现,尽管发现错误(并将其打印到控制台),控制器仍然执行segue并移至下一个屏幕(但不会将“LOGGING IN”打印到控制台)。发现这种行为很奇怪,有什么想法?
我抄我的日志在视图控制器下面:
import Foundation
import Firebase
import FBSDKCoreKit
import FBSDKLoginKit
class LogInViewController: UIViewController{
@IBOutlet weak var Email: UITextField!
@IBOutlet weak var Password: UITextField!
@IBAction func Login(_ sender: AnyObject) {
let email = self.Email.text!
let password = self.Password.text!
if (email != "" && password != ""){
FIRAuth.auth()?.signIn(withEmail: email, password: password, completion: { (user, error) in
if(error==nil){
print("LOGGING IN")
self.performSegue(withIdentifier: "loggedIn", sender: nil)
}
else{
print("COULDNT LOG IN")
print(error)
}
})
}
else{
let alert = UIAlertController(title: "Error", message: "Enter email and password", preferredStyle: .alert)
let action = UIAlertAction(title: "OK", style: .default, handler: nil)
alert.addAction(action)
self.present(alert, animated: true, completion: nil)
}
}
}
编辑
我在加入故事板ID loggedInViewControllerVC_ID到mealViewController身份检查员。
这是我的新代码:
import Firebase
import FBSDKCoreKit
import FBSDKLoginKit
class LogInViewController: UIViewController{
@IBOutlet weak var Email: UITextField!
@IBOutlet weak var Password: UITextField!
@IBAction func Login(_ sender: AnyObject) {
let email = self.Email.text!
let password = self.Password.text!
if (email != "" && password != ""){
FIRAuth.auth()?.signIn(withEmail: email, password: password, completion: { (user, error) in
if(error==nil){
print("LOGGING IN")
let nextViewController = self.navigationController?.storyboard?.instantiateViewController(withIdentifier: "loggedInViewControllerVC_ID") as! MealViewController
self.navigationController?.pushViewController(nextViewController, animated: true)
//self.performSegue(withIdentifier: "loggedIn", sender: nil)
}
else{
print("COULDNT LOG IN")
print(error)
}
})
}
else{
let alert = UIAlertController(title: "Error", message: "Enter email and password", preferredStyle: .alert)
let action = UIAlertAction(title: "OK", style: .default, handler: nil)
alert.addAction(action)
self.present(alert, animated: true, completion: nil)
}
}
}
现在我对成功输入登录信息
不幸的是,我不明白你的答案 - 没有办法做到这一点,而不删除从故事板和使用我原来的方法segue?努力遵循哪个控制器引用登录场景,并在您的答案中指向以下场景。 – benjanisa
我添加了一个指向我的情节串连图板的屏幕截图的链接。故事板ID应该是导航控制器还是视图控制器之后?另外,如何在第一个viewController中嵌入导航控制器?我只有通过故事板视图才能完成此操作。你能否也请解释为什么我目前的方法仍然因错误的登录细节而停滞不前? – benjanisa
请在上面的问题中查看我的更新(我已编辑)。试过按照你的指示 - 似乎做错了什么。 – benjanisa