Когда я пытаюсь войти в свое приложение, оно вылетает и сообщает мне
Неожиданно обнаружен ноль при развертывании необязательного значения
в этой строке кода
let user = Auth.auth().currentUser!.uid
У меня есть "autologin" в 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!)")
}
}
}
}
}
}