У меня есть поток внутри интерфейса, и я пытаюсь собрать значения в ViewModel, но операция сбора не запускается. Может ли кто-нибудь помочь мне понять, что я делаю неправильно?
Я делаю инъекции, используя рукоять кинжала
@Module @InstallIn(SingletonComponent::класс) объект RealtimeListenerModule { @Обеспечивает забавная привязкаFunction() : RealtimeListener{ вернуть RealtimeListenerImpl() } } интерфейс RealtimeListener { пользователь val: Flow } class RealtimeListenerImpl : RealtimeListener { частный val _userData = MutableStateFlow(null) переопределить пользователя val: Flow = _userData //эта функция сработает, когда какие-либо события поступают из Firebase, и я проверил, что события срабатывают нормально обновитьПользовательскиеДанные(){ _userData.value = это } } @HiltViewModel класс UserViewModelImpl Конструктор @Inject (частный прослушиватель val: RealtimeListener): UserViewModel() { в этом { viewModelScope.launch { слушатель.пользователь.коллировать { Log.d("TAG", "триггер $it") } } } } В UserViewModelImpl Log.d("TAG", "trigger $it") выполняется только один раз, когда блок init{ вызывается сейчас, через некоторое время, любой новый триггер события, я не могу получить значение в блоке сбора,
также я знаю, что блок инициализации срабатывает только один раз, я хочу, чтобы поток выдавал значение каждый раз, когда я хочу обновить пользователя, мне нужна помощь, чтобы добиться этого, заранее спасибо
Мобильная версия