Я читал об этой проблеме в нескольких местах, таких как здесь , но не знаю, какой пользовательский опыт дает пользователям.
Я использую Firebase Auth на iOS (Swift). В моем приложении есть только 2 способа создания учетной записи:
- Электронная почта (электронная почта / пароль)
- Вход через Apple
Я не уверен, как справиться с этим сценарием, когда Apple заменяет поставщика электронной почты в Firebase:
- Пользователь подписывается с параметром # 1 (электронная почта) как
john@gmail.com
. Мы используем api для подтверждения электронной почты , чтобы отправить электронное письмо пользователю, чтобы подтвердить свою электронную почту. - Этот пользователь по какой-либо причине не открывает электронную почту, чтобы подтвердить свою электронную почту. Таким образом, электронная почта не подтверждена.
- Пользователь выходит из приложения.
- Вместо того, чтобы пользователь входит в систему с параметром # 1 (электронная почта), пользователь входит в систему с параметром # 2 ( Войдите с Apple). Их адрес электронной почты Apple ID совпадает с вариантом № 1 (электронная почта):
john@gmail.com
. Мы используем API для входа с учетными данными .
В этом потоке 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 в качестве способа входа в этот конкретный c случай?