【发布时间】:2020-07-19 04:48:01
【问题描述】:
我已在多个地方(例如here)阅读过有关此问题的信息,但不知道该给用户什么样的用户体验。
我在 iOS (Swift) 上使用 Firebase 身份验证。在我的应用中,用户创建帐户的方式只有两种:
- 电子邮件(电子邮件/密码)
- 使用 Apple 登录
我不确定如何处理 Apple 替换 Firebase 中的电子邮件提供商的这种情况:
- 用户使用选项#1(电子邮件)注册为
john@gmail.com。我们使用 apisend email verification 向用户发送电子邮件以验证他们的电子邮件。 - 此用户出于某种原因没有打开电子邮件来验证他们的电子邮件。因此,电子邮件未经过验证。
- 用户退出应用程序。
- 用户使用选项 #2(使用 Apple 登录)登录,而不是使用选项 #1(电子邮件)登录。他们的 Apple ID 电子邮件与选项 #1(电子邮件)相同:
john@gmail.com。我们使用 API sign in with credential。
在此流程中,Apple 替换了电子邮件提供商,因为他们的常规电子邮件和 Apple ID 电子邮件相同(并且常规电子邮件未经过验证)。如果电子邮件经过验证,Firebase 在这种情况下会自动链接电子邮件和 Apple 帐户......而不是替换。
如果您稍后再次尝试使用选项 #1(电子邮件)创建帐户,您将收到此错误,因为它已被 Apple 使用:
Error Domain=FIRAuthErrorDomain Code=17007 "The email address is already in use by another account." UserInfo={NSLocalizedDescription=The email address is already in use by another account., FIRAuthErrorUserInfoNameKey=ERROR_EMAIL_ALREADY_IN_USE}
如果用户想使用电子邮件登录但现在不能登录,我不确定在此处为用户体验做些什么。我是否告诉用户:“抱歉,由于您没有验证您的电子邮件,Apple 替换了电子邮件提供商作为选项,现在您必须使用 Apple 登录您的帐户”?或者我们可以为用户提供更好的用户体验吗?无论如何,在这种特定情况下,是否可以轻松地允许该用户同时使用电子邮件和 Apple 作为登录方式?
【问题讨论】:
标签: ios swift firebase authentication firebase-authentication