Пользователь Firebase меняет адрес электронной почты или номер телефона - PullRequest
1 голос
/ 04 июня 2019

Создание приложения для Android с бэкэндом Firebase. Следующим шагом в разработке является настройка API для покупки и продажи товаров внутри приложения.API будет использовать номер телефона и, естественно, будет вести учет транзакций.Проверка подлинности с помощью Firebase SMS хорошо подходит для приложения.

Однако это приложение не предназначено для США.Пользователи могут захотеть сменить оператора связи, а это может означать изменение телефонных номеров.Что мы делаем, если пользователь меняет свой номер телефона?Подобная проблема может возникнуть, если модель была электронной почтой, а пользователь менял свою учетную запись электронной почты (например, изменяя учетную запись электронной почты в приложении с gmail.com на facebook.com).

Похоже, это будетручной процесс, при котором пользователь может работать с нашей командой администраторов, чтобы создать новую учетную запись, подтвердить ее с помощью SMS, а затем найти и заменить старый UUID новым UUID.Когда ссылки обновляются с новым ключом пользователя, все данные будут перемещены в новую учетную запись.

Есть ли лучший способ?У кого-нибудь есть сценарий «перемещения пользователя», который может быть адаптирован к нашему приложению?

Любое понимание от команды Firebase приветствуется.

Ответы [ 2 ]

2 голосов
/ 04 июня 2019

Firebase Authentication имеет методы для изменения номера телефона и адреса электронной почты в существующей учетной записи. Они не изменяют UID пользователя, поэтому не требуют обновления базы данных.

1 голос
/ 04 июня 2019

Вы должны повторно аутентифицировать текущего пользователя, используя

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
AuthCredential credential = EmailAuthProvider.getCredential("user@gmail.com", "userPassword");
user.reauthenticate(credential).addOnCompleteListener(
    //Code to handle successful completion of authentication.
);

Вы провели вышеупомянутую повторную аутентификацию, чтобы проверить, пытается ли правильный пользователь изменить адрес электронной почты.

После выполнения вышеуказанной аутентификации, если onComplete в addOnCompleteListener успешен, вам необходимо обновить текущее электронное письмо, используя метод ниже.

user.updateEmail("newEmail@example.com").addOnCompleteListener();

Опять же, проверьте, было ли успешное обновление электронной почты в onComplete(){}, и выполните соответствующие действия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...