gpt4 book ai didi

swift - Firebase:登录时找不到用户

转载 作者:行者123 更新时间:2023-11-28 14:11:43 25 4
gpt4 key购买 nike

当我尝试登录我的应用程序时,它崩溃并告诉我

Unexpectedly found nil while unwrapping an Optional value

在这行代码上

let user = Auth.auth().currentUser!.uid

我在 AppDelegate 中有“自动登录”:

[UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
FirebaseApp.configure()
//Send previously logged in users to main menu, or send to signIn screen
Auth.auth().addStateDidChangeListener { auth, user in
if let user = user {
// Take user to a home page
let mainStoryboard:UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let homePage = mainStoryboard.instantiateViewController(withIdentifier: "TabBarController") as! CustomTabBarController
self.window?.rootViewController = homePage
} else {
// Take user to sign In View Controller
let mainStoryboard:UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let signIn = mainStoryboard.instantiateViewController(withIdentifier: "SignInViewController") as! SignInViewController
self.window?.rootViewController = signIn
}
}
return true
}

奇怪的是,我注册一个新用户,注册后可以用那个用户登录,但是如果我再次注销,登录时就崩溃了。

编辑*
这是用户登录的方式:

 @IBAction func logInButton(_ sender: UIButton) {

if (emailTextField.text?.isEmpty)!{
errorMsg(title: "Error", message: "Missing Email")
}
if (passwordTextField.text?.isEmpty)! {
errorMsg(title: "Error", message: "Missing password")
}
else
{
Auth.auth().signIn(withEmail: emailTextField.text!, password: passwordTextField.text!) { (user, error) in
if user != nil {
self.performSegue(withIdentifier: "ToMenuFromLoginSegue", sender: self)

}
else {
if let myError = error?.localizedDescription {
print(myError)
}

}
//Diplay errormsg for loginErrors
if error != nil {
if let errCode = AuthErrorCode(rawValue: error!._code) {

switch errCode {
case .invalidEmail:
self.errorMsg(title: "Feil", message: "Invalid Email")
case .wrongPassword:
self.errorMsg(title: "Error", message: "Wrong password")
case .userNotFound:
self.errorMsg(title: "Error", message: "No user registered with that username")
case .networkError:
self.errorMsg(title: "Error", message: "Please check connection")
default:
print("Create User Error: \(error!)")
}
}
}
}

}
}

最佳答案

检查 segue 是否直接连接到 Storyboard 中的 logInButton。如果是这样,segue 将在没有任何身份验证的情况下执行。

关于swift - Firebase:登录时找不到用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52472948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com