我正在关注 youtube 上关于如何创建用户登录和注册的教程。我创建了三个 View Controller ...SignInVC、SignOutVC 和 SignUpVC。
注册功能在模拟器中完美运行...但是,当我尝试进行登录部分时,它根本不起作用。它不会抛出任何类型的错误...我只是点击了登录按钮,什么也没有。
注意:我没有像在注册 View 中那样在连接检查器中看到连接...所以我尝试再次拖动 socket (控制并将按钮拖动到 SignInVC),现在我在连接检查器中查看连接,但我现在收到此错误.....
从私有(private)有效用户设置中读取。 fatal error :在展开可选值时意外发现 nil 2017-09-04 14:50:03.988918-0400 示例项目 [12480:1387954] fatal error :在展开可选值时意外发现 nil (lldb)
这是我在 vc 中登录的代码:
import UIKit
import Firebase
class SignInVC: UIViewController {
//outlets
@IBOutlet weak var emailTF: UITextField!
@IBOutlet weak var passwordTF: UITextField!
//action
@IBAction func onSignInTapped(_ sender: Any) {
guard let email = emailTF.text,
email != "",
let password = passwordTF.text,
password != ""
else {
AlertController.showAlert(self, title: "Missing Info", message: "Please fill out all required fields")
return
}
Auth.auth().signIn(withEmail: email, password: password, completion: { (user, error) in
guard error == nil else{
AlertController.showAlert(self, title: "Error", message: error!.localizedDescription)
return
}
guard let user = user else { return }
print(user.email ?? "MISSING EMAIL")
print(user.displayName ?? "MISSING DISPLAY NAME")
print(user.uid)
self.performSegue(withIdentifier: "signInSegue", sender: nil)
})
}
}
如前所述,我的注册非常有效。这是相关代码...如果有帮助...
import UIKit
import Firebase
class SignUpVC: UIViewController {
//outlets
@IBOutlet weak var usernameTF: UITextField!
@IBOutlet weak var emailTF: UITextField!
@IBOutlet weak var passwordTF: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
//actions
@IBAction func onSignUpTapped(_ sender: Any) {
guard let username = usernameTF.text,
username != "",
let email = emailTF.text,
email != "",
let password = passwordTF.text,
password != ""
else {
AlertController.showAlert(self, title: "Missing Info", message: "Please fill out all fields")
return
}
Auth.auth().createUser(withEmail: email, password: password, completion: { (user, error) in
guard error == nil else {
AlertController.showAlert(self, title: "Error", message: error!.localizedDescription)
return
}
guard let user = user else { return }
print(user.email ?? "Missing Email")
print(user.uid)
let changeRequest = user.createProfileChangeRequest()
changeRequest.displayName = username
changeRequest.commitChanges(completion: { (error) in
guard error == nil else {
AlertController.showAlert(self, title: "Error", message: error!.localizedDescription)
return
}
self.performSegue(withIdentifier: "signUpSegue", sender: nil)
})
})
}
}
最佳答案
尝试在 capacitor.config 中设置服务器:{ iosScheme: "ionic"}
关于ios - 登录功能不工作..抛出错误...Firebase 和 Xcode 9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46042840/