【问题标题】:Swift Firebase Email Verification always returning falseSwift Firebase 电子邮件验证总是返回 false
【发布时间】:2017-02-22 22:01:34
【问题描述】:

我一直在努力完成这项工作,但 isEmailVerified 一直返回错误...即使我清楚地验证了电子邮件。

用户创建

FIRAuth.auth()?.createUser(withEmail: Email.text!, password: Password.text!) { (user:FIRUser?, error:Error?) in
            if error == nil {

                let when = DispatchTime.now() + 1
                DispatchQueue.main.asyncAfter(deadline: when) {

                    FIRAuth.auth()?.currentUser?.sendEmailVerification(completion: { (error) in

                        let post2 = UIAlertController(title: "Verification sent", message: "A Email will be sent to activate your account.", preferredStyle: .alert)

                        post2.addAction(UIAlertAction(title: "OK", style: .default, handler: { (_) in


                            self.performSegue(withIdentifier: "Sign_in", sender: nil)

                        }))

                        self.present(post2, animated: true, completion: nil)

                    })
                }

            } else {

                self.ErrorMsg.isHidden = false

                self.Password.text = ""

                print(error.debugDescription)
            }

        }

用户验证

FIRAuth.auth()?.addStateDidChangeListener { auth, user in

            if let user = user {
                Shared.shared.User_ID = user.uid
                Shared.shared.User_Email = user.email

                if user.isEmailVerified {

                    // Email Verified
                    self.performSegue(withIdentifier: "Launch_L", sender: nil)

                } else {

                    self.logOut.isHidden = false

                }

            } else {
                self.performSegue(withIdentifier: "Launch_S", sender: nil)
            }

        }

提前感谢您的帮助!

【问题讨论】:

  • 你有想过这个吗?
  • @cyril 是的,我联系了支持,我需要在检查用户是否通过验证之前输入“FIRAuth.auth()?.currentUser?.reload()”

标签: ios swift firebase firebase-authentication


【解决方案1】:

我只需要刷新个人资料:

FIRAuth.auth()?.currentUser?.reload()

【讨论】:

    【解决方案2】:

    斯威夫特 5:

    Auth.auth().currentUser?.reload()
    

    【讨论】:

    • 你认为这个问题特别是关于 Swift 5 吗?
    • @karthicknagarajan:用针对新语言、平台和库的更新解决方案来更新旧答案是很常见的。如果人们今天找到了这个答案,他们可能会对 Swift 5 的答案感兴趣。这也有助于避免为每个版本引入非常相似的问题。
    猜你喜欢
    • 2018-12-25
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    • 2022-11-09
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    相关资源
    最近更新 更多