Создайте отдельный слой Repository, получайте к нему доступ только из ваших viewModels.
Таким образом, у вас будут запросы запуска привязки представления / базы данных.
Далее, нужно иметь некоторое управление состояниями внутри Repository или store.некоторые данные там (используйте LiveData)
В вашей ViewModel назначьте значение для ссылки LiveData из репозитория.Поэтому каждый раз, когда вы обновляете его внутри репозитория, viewModel будет иметь один и тот же объект.
Наконец, вы можете наблюдать LiveData этого viewModel.
val someData = MutableLiveData<SomeObject>()
- этот внутри репозитория, теперь вы сможете сохранить любой результат сетевого вызовавнутри репозитория.
Ваш ViewModel должен содержать следующее: val someData= Repository.instance.someData
А из фрагмента / вида использования: viewModel.someData.observe(this, {...})