Я читаю эти записи в блоге, написанные Дугом Стивенсоном Часть 1 , Часть 2 , Часть 3 . Во второй части он говорит, что
SDK базы данных в реальном времени действительно упрощает преобразование DataSnapshot в объект стиля JavaBean
и упоминает, что мы можем использовать эту строку код для десериализации DataSnapshot в объект HotStock (класс JavaBean)
HotStock stock = dataSnapshot.getValue (HotStock.class)
Я запутался, потому что он сначала использует Transformation.map, а затем говорит, что если преобразование LiveData стоит дорого, мы можем создать объект MediatorLiveData из ViewModel, чтобы преобразовать DataSnapshot в объект HotStock.
Мой вопрос: почему мы не можем просто вызвать
HotStock stock = dataSnapshot.getValue (HotStock.class)
из onDataChange () в методе ValueEventListener, который находится в классе, расширяющем суперкласс LiveData, а затем просто использует метод setValue () для передачи объекта HotStock непосредственно в ViewModel, а затем в Activity или Fragment, отслеживающих изменения в LiveData?