有没有办法在快速的ViewController中执行条件选择?

时间:2019-02-09 02:47:44

标签: swift firebase firebase-authentication segue

我正在尝试使用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)")
        }
    }
}

最好

密码爸爸

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。

上面的代码实际上是正确的并且可以运行。问题是在以下位置调用了handleSignIn方法:

 @IBAction func didTapLogin(_ sender: Any) {...}

该按钮本身就是带有标识符“ toHome”的segue连接,因此,无论if / else块的计算结果如何,应用程序都会进入主菜单。

一旦删除并从LoginViewController到HomeViewController(而不是HomeViewController的“登录”按钮)重新建立了序列“ toHome”,此代码便可以正常工作。