У меня есть тестовое приложение Firebase с включенным логином Facebook.Я создал тестовую учетную запись FB (назовите ее abc@xyz.com
), вошел в Firebase через логин FB, запросил данные профиля FB, такие как id
и email
через GraphRequest
, используя возвращенный accessToken
, и все кажется правильным.
Затем я добавил еще одно электронное письмо в учетную запись FB (назовите его def@uvw.com
), изменил основной электронный адрес с abc@xyz.com
на def@uvw.com
и удалил abc@xyz.com
из учетной записи.Технически, abc@xyz.com
теперь выпущен и не связан с учетной записью FB.
Теперь, когда я вхожу в Firebase с помощью def@uvw.com
Firebase правильно распознает, что это тот же пользователь, который вошел в систему ранее (так как учетные данные FBтот же самый).Однако, когда я вижу список пользователей в консоли Firebase, в электронном письме пользователя по-прежнему отображается abc@xyz.com
.
Поэтому я создал новую учетную запись FB с помощью abc@xyz.com
и попытался войти в свое приложение Firebase с помощьютот.Но так как я выбрал опцию «Одна учетная запись на адрес электронной почты» в настройках аутентификации Firebase, я получаю следующую ошибку:
Error Domain=FIRAuthErrorDomain Code=17012 "An account already exists with
the same email address but different sign-in credentials. Sign in using a
provider associated with this email address." UserInfo=
{error_name=ERROR_ACCOUNT_EXISTS_WITH_DIFFERENT_CREDENTIAL,
FIRAuthErrorUserInfoEmailKey=abc@xyz.com, NSLocalizedDescription=An
account already exists with the same email address but different sign-in
credentials. Sign in using a provider associated with this email address.}
Это означает, что, хотя я и выпустил это письмо из учетной записи FBСоздав нового пользователя с этим выпущенным письмом, я больше никогда не смогу войти в свое приложение (если я выбрал опцию «Одна учетная запись на адрес электронной почты» в настройках аутентификации Firebase)
Поэтому мне любопытно: есть ли причина, по которой Firebase не обновляет электронную почту в первой учетной записи после изменения основной электронной почты в учетной записи FB?Это ошибка?Поскольку ответ GraphRequest
возвращает новое электронное письмо, техническая база Firebase должна иметь возможность обновить его, если нет другого пользователя с уже зарегистрированным новым электронным письмом.