Jetpack создает нулевое значение для переменной в ViewModelAndroid

Форум для тех, кто программирует под Android
Anonymous
Jetpack создает нулевое значение для переменной в ViewModel

Сообщение Anonymous »

Я устанавливаю значение переменной, используя LiveData в моей модели представления. Данные извлекаются из Firebase.
Ниже представлена ​​структура ViewModel
класса FarmViewModel(): ViewModel() {
var firestoreDB = InitializeFirestore()
private var _farms = MutableStateFlow(emptyList())
private var _farm = MutableLiveData()

var farms = _farms.asStateFlow()
var farm : LiveData = _farm

init{
getFarms()
}

fun getFarm(id:String){

firestoreDB.collection("farms")
.whereEqualTo("id",id)
.get()
.addOnSuccessListener {
if (it != null) {
//the farm name value is as expected
Log.d("farms", "DocumentSnapshot data: ${it.toObjects()[0].farm_name}")

_farm.value=it.toObjects()[0]
} else {
Log.d("farms", "No such document")
}
}
.addOnFailureListener{
Log.e("farms",it.message.toString())
setError(
ErrorData(
code=500,
service="CreateFarm",
message = it.message.toString()
)
)

}
}

Функция getFarm вызывается с использованием события Onclick, которое извлекает выбранный идентификатор, а также для перехода к экрану фермы.
В Composable значение фермы равно нулю
val farm = farmViewModel.farm.observeAsState()

Log.i("farm_", farm.value.toString())


Подробнее здесь: https://stackoverflow.com/questions/791 ... -viewmodel

Вернуться в «Android»