Я хочу преобразовать снимки списка документов в список UserData.
updateUsers()
в ViewModel должен вернуть список LiveData UserData.
Поэтому я использую это и репо для извлечения всех пользователей из коллекции в firestore:
class ListUsersLiveData(private val query: Query)
: LiveData<List<DocumentSnapshot?>>(), EventListener<QuerySnapshot>{
.....
.....
override fun onEvent(snapshot: QuerySnapshot?, e: FirebaseFirestoreException?) {
val documents : List<DocumentSnapshot> = snapshot!!.documents
postValue(documents)
}
}
В ViewModel (у моего объекта UserData есть две строки: имя и телефон):
fun updateUsers(): LiveData<List<UserData>> {
val liveData = repo.getAllUsers() // return list of Documents Snapshots
return Transformations.map(liveData, { snap: List<DocumentSnapshot?> ->
//how do i transform the live data in the right way?
//this is something i was trying but it doesnt work
UserData(snap.get("name").toString(),snap.get("phone").toString())
})
}
Я не могу полностью понимаю, как это сделать, любая помощь приветствуется.