2017-07-30 92 views
0

调用下面的代码时,出现以下错误消息 “没有与此标识符对应的用户记录,用户可能已被删除。
是不是由上面的代码创建的用户在那一点上? 我试图在创建后使用验证电子邮件验证新用户的电子邮件。 感谢在Firebase中创建用户之后立即发送验证电子邮件

let saveAction = UIAlertAction(title: "Create", 
            style: .default) { action in 
            let emailField = alert.textFields![0] 
            let passwordField = alert.textFields![1] 

            Auth.auth().createUser(withEmail: emailField.text!, 
                  password: passwordField.text!) { user, error in 
                  if error == nil { 
                   Auth.auth().signIn(withEmail: self.textFieldLoginEmail.text!, 
                        password: self.textFieldLoginPassword.text!) 
                  } 
                          } 
            Auth.auth().currentUser?.sendEmailVerification { (error) in 
             if let error = error 
             {print("Error when sending Email verification is \(error)")} 
            } 

                 } 

回答

1

当你创建一个用户,它们会自动登录所以,你可以删除登录通话和移动验证邮件的发送到完成处理程序:

Auth.auth().createUser(withEmail: emailField.text!, 
         password: passwordField.text!) { user, error in 
         if error == nil { 
          Auth.auth().currentUser?.sendEmailVerification { (error) in 
          if let error = error 
           .... 

在这种情况下,这将无法正常工作,登录方法也有一个完成处理程序,所以:

Auth.auth().signIn(withEmail: email, password: password) { (user, error) in 

    if error == nil { 
     Auth.auth().currentUser?.sendEmailVerification { (error) in 
     if let error = error 
     // ... 
} 
+0

非常感谢你弗兰克。刚刚意识到我在创作后也有签字。你的第一个解决方案奏效 – user2867432

相关问题