创建帐户后,我发送带有验证链接的电子邮件:
func sendVerificationMail() {
if self.authUser != nil && !self.authUser!.isEmailVerified {
self.authUser!.sendEmailVerification(completion: { (error) in
// TODO Notify user email was sent or not because of error
})
} else {
// TODO Notify everything is OK
}
}
在其他地方,我确认它已确认:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
if Auth.auth().currentUser != nil && Auth.auth().currentUser!.isEmailVerified {
self.performSegue(withIdentifier: "toMainScreen", sender: self)
} else {
self.performSegue(withIdentifier: "notLoggedView", sender: self)
}
}
即使得到确认,我也总是转到notLoggedView。有人可以解释为什么?
答案 0 :(得分:2)
我遇到了类似的问题,要解决此问题,我必须重新加载配置文件。试试这个。
func loginUser() {
Auth.auth().currentUser?.reload(completion: { (error) in
if let error = error {
print(error)
} else {
if Auth.auth().currentUser != nil && Auth.auth().currentUser!.isEmailVerified {
self.performSegue(withIdentifier: "toMainScreen", sender: self)
} else {
self.performSegue(withIdentifier: "notLoggedView", sender: self).
}
}
})
}
此外,您不必每次都将Auth.auth().currentUser
存储在variable
中。而且,您可以在任何地方使用此功能。
if let authUser = Auth.auth().currentUser { //You can also get current user like this in a safe way
//Do your stuff here
}