我正在尝试使用Firebase对用户登录进行身份验证。如果验证了用户的凭据,则将在if-else语句中使用user和error锁定到应用程序的主屏幕。但是,performSegue(...)执行是否实际登录。
我确定问题不在于Firebase中的验证/登录/注销问题或文本字段。
这是我的代码:
func handleSignIn(username:String, password:String) {
Auth.auth().signIn(withEmail: username, password: password) { user, error in
if error == nil && user != nil {
//self.dismiss(animated: false, completion: nil)
print("Logged in!")
self.performSegue(withIdentifier: "toHome", sender: nil)
} else {
print("Error logging in: \(error!.localizedDescription)")
}
}
}
最好
密码爸爸
答案 0 :(得分:0)
我已经解决了这个问题。
上面的代码实际上是正确的并且可以运行。问题是在以下位置调用了handleSignIn方法:
@IBAction func didTapLogin(_ sender: Any) {...}
该按钮本身就是带有标识符“ toHome”的segue连接,因此,无论if / else块的计算结果如何,应用程序都会进入主菜单。
一旦删除并从LoginViewController到HomeViewController(而不是HomeViewController的“登录”按钮)重新建立了序列“ toHome”,此代码便可以正常工作。