Обновление или добавление электронного письма - важная и конфиденциальная информация, другие ответы, хотя и выделяют важные шаги, они забывают упомянуть, что пользователь должен недавно пройти проверку подлинности, чтобы его решения работали. Если пользователь недавно не прошел аутентификацию, Firebase выдает исключение - FirebaseAuthRecentLoginRequiredException
(см. документация ).
Давайте рассмотрим официальные примеры документов.
Обновление или добавление адреса электронной почты ( документы )
val user = FirebaseAuth.getInstance().currentUser
user?.updateEmail("user@example.com")?.addOnCompleteListener { task ->
if (task.isSuccessful) {
Log.d(TAG, "User email address updated.")
}
}
Что делать, если пользователь недавно не прошел аутентификацию?
Повторная проверка подлинности пользователя ( документы )
Снова взяты прямо из документов:
// Get auth credentials from the user for re-authentication. The example below shows
// email and password credentials but there are multiple possible providers,
// such as GoogleAuthProvider or FacebookAuthProvider.
val credential = EmailAuthProvider
.getCredential("user@example.com", "password1234")
// Prompt the user to re-provide their sign-in credentials
user?.reauthenticate(credential)
?.addOnCompleteListener { Log.d(TAG, "User re-authenticated.") }
В В вашем случае поставщик учетных данных будет PhoneAuthProvider
.