Это мой первый опыт работы с LiveData. Прошу прощения, если я сделал что-то не так.
Я установил точку останова на LoginVM и обнаружил, что функция входа в систему, которая возвращает LiveData, не вызывается, даже если аутентификация прошла успешно, и postValue вызывается для установки данных. Я не понимаю почему.
UserRemoteRepository.kt
override fun signIn(email: String, password: String): LiveData<FirebaseUser> {
val loggedInUser: MutableLiveData<FirebaseUser> = MutableLiveData()
mAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener {
if (it.isSuccessful) {
loggedInUser.postValue(mAuth.currentUser)
}
}
return loggedInUser
}
LoginVM.kt
fun login() = Transformations.map(UserRemoteRepository.signIn(email.get().toString(), password.get().toString())) {
it
}
LoginFrag.kt
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
val viewModel = viewDataBinding.viewmodel
viewModel?.login()?.observe(this.activity, Observer {
Log.d(TAG, it?.email)
})
}