# #firebase #viewmodel #android-jetpack-compose #flow
Вопрос:
Я не знаю почему, но мой текст в MutableStateFlow не меняется, когда я изменяю строку в консоли firebase. Может ли кто-нибудь помочь мне и сказать, почему ? Я запускаю поток с помощью emit(Resource.success(данные)), и в ViewModel я получаю информацию в MutableStateFlow, а затем получаю информацию о представлении с помощью collectAsState().
Это работает правильно, но я хотел проверить случай, когда я изменяю данные в консоли firebase, и посмотреть, обновляются ли они в приложении, но нет..
Если я делаю это неправильно, скажите мне, почему, и расскажите мне случай, когда это нормально работает.
Спасибо.
Модель домашнего просмотра
//val _posts = MutableStateFlow(emptyList<Post>())
//val posts: MutableStateFlow<List<Post>> = _posts
val post = mutableStateListOf<Post>()
fun loadAllPosts() {
viewModelScope.launch {
navRepository.getAllPosts().collect { state ->
when (state) {
is Resource.Loading -> {
loading.value = true
}
is Resource.Success -> {
post.addAll(state.data)
//_posts.value = state.data
loading.value = false
}
is Resource.Failure -> {
Log.e(state.throwable, state.throwable)
}
}
}
}
}
FirebaseNavSrc
suspend fun getAllPosts() = flow<Resource<List<Post>>>{
emit(Resource.loading())
val snapshot = postCollection.orderBy("timeStamp", Query.Direction.DESCENDING).get().await()
val posts = snapshot.toObjects(Post::class.java)
emit(Resource.success(posts))
}.catch {
emit(Resource.failed(it.message.toString()))
}.flowOn(Dispatchers.IO)
Наврепозиционный
suspend fun getAllPosts() = firebase.getAllPosts()
Рабочий стол
//val posts by homeViewModel.posts.collectAsState()
val post = homeViewModel.post
LazyColumn(
state = rememberLazyListState(),
verticalArrangement = Arrangement.spacedBy(10.dp)
) {
items(post) { post ->
//val difference = homeViewModel.getDateTime(homeViewModel.getTimestamp())
val date = homeViewModel.getDateTime(post.timeStamp!!)
QuestionCard(
name = post.postAuthorName!!,
date = date!!,
image = post.image!!,
text = post.postText!!,
like = 0,
response = 0,
topic = post.topic!!
)
}
}
Комментарии:
1. Да, вы правы ! Я отредактировал свой вопрос.