Моя viewModel перезагружает мои данные, заставляя мое мерцание продолжать выполняться каждый раз, когда я получаю этот фрагмент, а также данные перезагружаются, что приводит к увеличению моего счета на Firebase
Как я могу предотвратить повторную загрузку снова данные каждый раз, когда мой фрагмент всплывает?
На мой взгляд
viewModel.fetchShops(location).observe(viewLifecycleOwner, Observer {
when(it){
is Resource.Loading -> {
shimmer.visibility = View.VISIBLE
shimmer.startShimmer()}
is Resource.Success -> {
shimmer.visibility = View.GONE
shimmer.stopShimmer()
adapter.setItems(it.data)
}
is Resource.Failure -> {
Toast.makeText(requireContext(),"Error fetching data",Toast.LENGTH_SHORT).show()
}
}
})
Я называю это в моем onViewCreated()
, поэтому каждый раз, когда этот фрагмент воссоздает мои Resource.Loading
пожары, а также fetchShops(location)
, и это снова приводит к моей базе данных, я хочу, чтобы это выбиралось только один раз каждый раз, когда я возвращаюсь к этому фрагменту, любая идея?
ViewModel
fun fetchShops(location:String) = liveData(Dispatchers.IO) {
emit(Resource.Loading())
try{
emit(repo.fetchShops(location))
}catch (e:Exception){
emit(Resource.Failure(e))
}
}