提问人:Damor vipul 提问时间:10/28/2023 最后编辑:Damor vipul 更新时间:10/31/2023 访问量:58
kotlin Flow 未实时更新
kotlin Flow is not updating realtime
问:
我在接口中有一个流,并且我正在尝试在 ViewModel 中收集值,但未触发收集操作。谁能帮我弄清楚我可能做错了什么?
我正在使用匕首刀柄注射
@Module
@InstallIn(SingletonComponent::class)
object RealtimeListenerModule {
@Provides
fun bindingFunction() : RealtimeListener{
return RealtimeListenerImpl()
}
}
interface RealtimeListener {
val user: Flow<User?>
}
class RealtimeListenerImpl : RealtimeListener {
private val _userData = MutableStateFlow<User?>(null)
override val user: Flow<User?> = _userData
//this function will trigger when any events comes from firebase and i tested events are firing fine
fun updateUserData(){
_userData.value = it
}
}
@HiltViewModel
class UserViewModelImpl
@Inject constructor(private val listener: RealtimeListener) : UserViewModel() {
init {
viewModelScope.launch {
listener.user.collect {
Log.d("TAG", "trigger $it")
}
}
}
}
在只执行一次时,块在一段时间后调用任何新的事件触发器,我无法在收集块中接收值,UserViewModelImpl Log.d("TAG", "trigger $it")
init{}
我也知道 init 块只会触发一次,我想要的是,当流每次我想更新用户时发出值时,我需要帮助才能提前感谢:-)
答: 暂无答案
评论