Search

Firestore Stream 초기화 문제 - Widget 리빌드 시

late final Stream<QuerySnapshot<Map<String, dynamic>>>? stream; void initState() { // TODO: implement initState super.initState(); final eventProvider = Provider.of<EventProvider>(context, listen: false); eventProvider.getRecentEntryStream(); stream = eventProvider.currentEventEntryStream; }
Dart
복사
return StreamBuilder<QuerySnapshot>( stream: Provider.of<EventProvider>(context).currentEventEntryStream, builder: (context, snapshot) { // ...
Dart
복사
StreamBuilder 에 Provider 의 Stream 인스턴스를 바로 꽂아주면 이런 현상이 발생한다.
late final Stream<QuerySnapshot<Map<String, dynamic>>>? stream;
Dart
복사
위 처럼 Stream 프로퍼티를 만들어서 딱 한번만 초기화되도록 해주자.
그렇지 않으면 ReBuild 될 때마다 Stream 을 초기화 시킬 것이다.
return StreamBuilder<QuerySnapshot>( stream: stream, builder: (context, snapshot) { // ...
Dart
복사