我有一个看起来很傻的问题,但我哪儿也找不到答案。我有一个简单的注册iOS过程,它依赖于Firebase身份验证SDK。
在创建用户之后的特定时间点上:
FIRAuth.auth()?.createUser(withEmail: userName!, password: password!)就在那之后,我给我的用户发送了一封验证邮件:
FIRAuth.auth()?.currentUser?.sendEmailVerification(completion:
{(error) in
if error == nil
{self.showSuccessPopUp()}
else
{self.showErrorPopUp()}
})一切都很好,一点问题都没有。
我的问题是:我的用户收到了电子邮件,并且--不管什么原因--没有点击自动生成的确认链接。后来,他又打开了这个应用程序--忘了他已经注册过一次--尝试用相同的电子邮件地址注册。
Firebase只是说已经有一个用户用那个电子邮件地址创建了--根据文档,即使不是'active‘-,用户也是被创建的,因此我想给我的用户一个“重新发送验证电子邮件”的选项。
在没有解决方案的情况下,我一直在研究Firebase文档。有没有人有过同样的“问题”?
谢谢你的帮助
发布于 2018-04-13 15:21:52
虽然很晚,但我会在两种情况下回答这个问题:
1:您成功地调用了createUser,但是当用户再次打开应用程序时,firebase.auth()表示它们没有在中签名
在这种情况下,帐户存在密码,因此您需要发送“重置密码”电子邮件,而不是身份验证电子邮件。
2:您成功地调用了createUser,但是当用户再次打开应用程序时,firebase.auth()表示它们是用签名的
在这种情况下,它们被登录,但没有被验证。使用
firebase.auth().currentUser.reload() // reloads user fields, like emailVerified:
if (!firebase.auth().currentUser.emailVerified) {
//resend verification email
} else {
//login
}请原谅我使用了javascript,但是应该很容易翻译。
https://stackoverflow.com/questions/43385571
复制相似问题