我正在为我的iOS应用程序使用Firebase身份验证。现在我想检查输入的电子邮件地址是否可用。我发现我必须为此使用createUserWithEmailAndPassword
。但问题是我不想通过密码。我只想检查使用电子邮件。我怎样才能做到这一点?如何检查iOS上的Firebase中是否已使用电子邮件地址?
回答
您需要使用fetchProvidersForEmail:完成: https://firebase.google.com/docs/reference/ios/firebaseauth/api/reference/Classes/FIRAuth#-fetchprovidersforemailcompletion
它会返回与该电子邮件相关的供应商ID列表。如果您在列表中获得“密码”,则该电子邮件已存在电子邮件/密码帐户,您可以显示登录页面。
不幸的是,您无法通过Firebase执行此操作。电子邮件帐户还需要密码。
如果你不希望用户必须输入密码,你可以使用其他帐户选项,如Facebook,谷歌,Twitter的等
其实我的设计就像有第一页,用户将输入电子邮件地址。如果该电子邮件已被注册,则用户导航到下一个页面,该页面是用户输入密码并登录到应用程序的密码页面。 @bradley –
火力地堡中身份验证的用户帐户已经可以电子邮件地址被验证,它不一定是一个电子邮件+密码帐户。 To verify the email address for a user call user.sendEmailVerification()
。
如果要在注册用户之前检查电子邮件地址是否已被使用,Firebase Admin SDK的方法为look up a user by their email address:admin.auth().getUserByEmail(email)
。此方法需要管理权限,并且(像所有Admin SDK一样)只应在受信任的环境中运行 - 通常是您控制的服务器或Firebase的Cloud Functions。
最后注意:请注意,即使您在注册之前检查电子邮件地址是否可用,在您拨打createUserWithEmailAndPassword()
时,电子邮件地址可能会被其他用户声称。 Jen评论说:如果电子邮件地址已被使用,您还需要处理createUserWithEmailAndPassword()
引发的错误。
谢谢!任何其他选项,而不使用'admin.auth()。getUserByEmail(email)'? –
你只需要创建一个引用,而用户在FirebaseDB的父“用户”中注册,其中的电子邮件ID已用firebase应用程序注册为“email”,并在检查电子邮件时运行以下查询调用或不
let databaseReff = Database.database().reference().child("users")
databaseReff.queryOrdered(byChild: "email").queryEqual(toValue: self.emailTextField.text!).observe(.value, with: { snapshot in
if snapshot.exists(){
//User email exist
}
else{
//email does not [email id available]
}
})
以下是(斯威夫特4)你可能会寻找Firebase function的结构:
Auth.auth().fetchProviders(forEmail: emailAddress, completion: {
(providers, error) in
if let error = error {
print(error.localizedDescription)
} else if let providers = providers {
print(providers)
}
})
如果电子邮件地址已注册用户,你会得到一个列表的电子邮件地址的提供者 是用来。否则,提供者列表将为空,因此电子邮件地址未被注册。
- 1. 如何检查电子邮件地址是否已被使用Firebase
- 2. Swift Firebase检查电子邮件是否已被使用
- 3. 如何检查电子邮件地址是否是假的?
- 4. 检查电子邮件地址是否已存在db
- 5. 如何检查电子邮件地址是否属于Gmail
- 6. 如何检查电子邮件地址是否存在codeigniter
- 7. 如何检查电子邮件地址是否正常工作?
- 8. 我们如何检查电子邮件地址是否有效?
- 9. 如何检查电子邮件地址是否存在。验证
- 10. 检查电子邮件地址是否为子域名
- 11. 如何检查电子邮件地址是否存在?使用C#,ASP.NET
- 12. 检查是否有已经注册的电子邮件地址(包括点等)
- 13. 的Rails:如何检查是否电子邮件已经排队
- 14. 检查一些电子邮件地址是否在gravatar注册?
- 15. 检查电子邮件地址是否属于雅虎
- 16. 检查字符串是否包含电子邮件地址
- 17. 验证电子邮件地址 - 检查是否为空
- 18. 如何检查Throwable是否是无效电子邮件地址的结果
- 19. 异步检查是否已使用AngularJS发送电子邮件
- 20. PHP检查电子邮件是否已被使用
- 21. 如何使用Firebase验证电子邮件地址
- 22. 如何检查电子邮件地址是否有效Lync用户?
- 23. 如何检查电子邮件是否已发送
- 24. 如何检查电子邮件是否已成功发送?
- 25. 如何检查Siebel是否已成功发送电子邮件?
- 26. 如何检查使用电子邮件的用户是否已经存在?
- 27. 如何检查后台是否有新电子邮件 - ios
- 28. 确定是否电子邮件地址的邮件列表地址或个人电子邮件地址
- 29. 如何检查是否输入正确的电子邮件地址?
- 30. 如何检查edittext的文本是否为电子邮件地址?
如果发送电子邮件,Firebase身份验证已经返回错误。您为什么要在用户输入密码之前进行检查? –
你想查看电子邮件是什么意思?您是否确定电子邮件已被使用?或者是什么? – UmarZaii
其实我的设计就好像有第一页用户输入电子邮件地址。如果该电子邮件已被注册,则用户导航到下一个页面,该页面是用户输入密码并登录到应用程序的密码页面。所以在第一页上,我想检查该电子邮件是否已注册。 @JenPerson –