【问题标题】:Sending a verification email right after user creation in Firebase在 Firebase 中创建用户后立即发送验证电子邮件
【发布时间】:2017-07-30 02:59:06
【问题描述】:

调用下面的代码时,我收到以下错误消息 “没有与此标识符对应的用户记录。该用户可能已被删除。”
那个时候用户不是由上面的代码创建的吗? 我正在尝试在创建新用户的电子邮件后使用验证电子邮件对其进行验证。 谢谢

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)")}
                                    }

                                                        }

【问题讨论】:

    标签: ios swift firebase firebase-authentication


    【解决方案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
            // ...
    }
    

    【讨论】:

    • 非常感谢弗兰克。刚刚意识到我也在创建后立即登录。您的第一个解决方案奏效了。
    猜你喜欢
    • 2017-06-12
    • 2020-08-06
    • 2020-02-03
    • 2023-03-21
    • 2018-08-14
    • 2012-07-14
    • 2019-06-24
    • 2018-11-21
    • 1970-01-01
    相关资源
    最近更新 更多