Я пытаюсь обновить электронную почту пользователя в моем приложении для Android. И все работает нормально, если доступно новое письмо. Когда это не так - onFailureListener вызывает. Но когда я пытаюсь получить исключение от этого слушателя, оно пустое, и я не могу получить тип этого исключения. Зачем? Код ниже.
private fun reauthenticateAndUpdateEmail(password: String, newEmail: String){
val credentials = EmailAuthProvider.getCredential(auth.currentUser!!.email!!, password)
auth.currentUser!!.reauthenticate(credentials).addOnCompleteListener(object : OnCompleteListener<Void> {
override fun onComplete(p0: Task<Void>) {
if (p0.isSuccessful) {
auth.currentUser!!.updateEmail(newEmail).addOnSuccessListener {
interractor.emailChanged()
}.addOnFailureListener { exception ->
interractor.emailChanged(false, handleException(p0.exception))
}
} else interractor.emailChanged(false, handleException(p0.exception))
}
})
}
private fun handleException(exception: Exception?): String{
//exception is null
when(exception){
is FirebaseAuthUserCollisionException -> return "E-mail address is not available"
is FirebaseNetworkException -> return "No network"
else -> return "Try again later."
}
}
Заранее спасибо и хорошего дня.