尝试为多个视图控制器设置Firebase身份验证时发生错误

时间:2018-09-07 05:27:07

标签: ios swift xcode firebase firebase-authentication

我正在尝试为用户创建Firebase Auth方法以创建帐户。但是,我有多个视图控制器,要求我先保存用户信息,然后才能处理Firebase Auth'createUser'函数。因此,我为此创建了一个字典。我也在使用Swift。

这就是我说我有多个创建帐户视图控制器时的意思。

enter image description here

然后我在App委托中添加了一个创建的字典,以在激活Firebase的'createUser'方法之前保存用户信息。

 // Instance of AppDelegate
static let shared: AppDelegate = UIApplication.shared.delegate as! AppDelegate
// Dictionary for user information
var userInformation: Dictionary<String, Any> = [:]

这是“输入您的电子邮件地址”视图控制器的代码。

 // After Email is entered, next button is tapped to take user to second step of sign up process
@IBAction func nextButtonTapped(_ sender: UIButton) {
    AppDelegate.shared.userInformation ["createEmail"] = emailTextField.text

最后是“名称和密码”视图控制器。在这里,我也希望从最后一个视图控制器保存的电子邮件也可以放到这里。我尝试调用存储在字典中的所有已保存信息,以便可以实现Firebase Auth.auth()。createUser方法。

IBAction func nextButtonTapped(_ sender: UIButton) {
    AppDelegate.shared.userInformation["name"] = nameTextField.text
    AppDelegate.shared.userInformation["password"] = createPassWordTextField.text

    let createEmail = AppDelegate.shared.userInformation["createEmail."]
    let name = AppDelegate.shared.userInformation["name"]
    let password = AppDelegate.shared.userInformation["password"]

    Auth.auth().createUser(withEmail: createEmail, password: password ) { (user, error) in
        if error == nil && user != nil {
            print("User Created!")
            // If user is created go to Welcome Page
            self.performSegue(withIdentifier: "goToWelcomeVC", sender: self)
        } else {
            print("error creating User")

之后,我希望创建用户的帐户。然后,他们将被带到欢迎页面,然后是主页。但是我似乎收到此错误。我碰巧把字典弄错了吗?对于我的登录视图控制器,这非常简单。如下所示。

 //Login Button

@IBAction func loginButtonTapped(_ sender: UIButton) {
  // Signing in User with Email and Password using Firebase
    if let email = emailTextField.text, let password = passwordTextField.text {

        Auth.auth().signIn(withEmail: email, password: password) { (user, error) in
            // check if user isnt nil
            if user != nil {
                print("Login Successful")
                // user is found, go to home screen
                self.performSegue(withIdentifier: "goToHomeVC", sender: self)
            } else {
                print("loginError")

我尝试通过使用电子邮件,密码和名称= UITextField.text对注册视图控制器执行相同的操作。有人可以帮我解决我在这里做错的事情吗?

编辑*这是我收到的错误。 enter image description here

谢谢。

1 个答案:

答案 0 :(得分:1)

我不知道这是否可以解决您的问题,但是 let createEmail = AppDelegate.shared.userInformation["createEmail."]如您在此处看到的,您的密钥与第一个密钥不同,在第一个密钥中,您将信息另存为["createEmail"],最后没有点号。

相关问题