#firebase #firebase-authentication
# #firebase #firebase-аутентификация
Вопрос:
Каков наилучший путь, если пользователь потерял свой номер телефона и хочет обновить свою учетную запись новым номером телефона? У нас уже есть их электронная почта.
Проблема в том, что Firebase необходимо отправить SMS на старый номер телефона перед его обновлением, который пользователь потерял.
Моя лучшая идея на данный момент — аутентифицировать их по электронной почте, затем отправить запрос на наш серверный сервер с новым номером телефона, который они ввели, а затем использовать Firebase Admin SDK для обновления номера телефона пользователя. Здесь есть только одна проблема: как мне проверить этот новый номер телефона, чтобы убедиться, что пользователь не просто добавил какой-то случайный?
Ответ №1:
Я отвечаю на свой собственный вопрос тем путем, по которому я шел:
Сначала мы получаем их электронную почту и отправляем электронное письмо с подтверждением, которое содержит кнопку, перенаправляющую на глубокую ссылку, содержащую токен, который мы используем в серверной части, чтобы убедиться, что пользователь действительно тот, за кого себя выдает.
После того, как пользователь нажимает на ссылку, мы показываем экран в приложении, который запрашивает новый номер телефона.
После ввода нового телефонного номера мы отправляем его на наш серверный сервер вместе с токеном в deeplink. Мы проверяем токен, затем используем Twilio для отправки подтверждающего SMS-сообщения на этот новый номер.
Тем временем пользователь уже был отправлен на экран с кодом подтверждения. Они получают SMS-сообщение Twilio и вводят код. Мы отправляем этот код на наш серверный сервер и проверяем правильность введенного ими кода.
Если код правильный, мы используем Firebase Admin API для обновления номера телефона этого пользователя на новый.
Ответ №2:
В Firebase есть метод аутентификации по телефону
Для Интернета: https://firebase.google.com/docs/auth/web/phone-auth#send-a-verification-code-to-the-users-phone
Редактировать
Изменить номер телефона пользователя можно с помощью приведенного ниже метода
PhoneAuthCredential credential = PhoneAuthProvider.getCredential(verificationId, code);
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
user.updatePhoneNumber(credentials)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
}
}
});
Проблема в том, что вам нужно отправить код подтверждения на старый номер телефона пользователя (ссылки выше), чтобы создать PhoneAuthCredential (ссылку).
Я не знаю способа обойти это с помощью firebase
Комментарии:
1. Это никоим образом не отвечает на мой вопрос.