파파비의 블로그

플러터, flutter) Firebase - Cloud Firestore & StreamBuilder 본문

개발/flutter

플러터, flutter) Firebase - Cloud Firestore & StreamBuilder

N. Dave 2020. 6. 21. 22:30
반응형

실제로 snapshot().listen 까지는 잘 안간다.

 

그 경우에 따라 다시 위젯을 빌드를 하는 경우가 매우 많은데,

그 경우에 사용하는 위젯이 있다. 바로 

 

StreamBuilder다

 

Builder들을 하도 많이 만나다 보니 이름만 들어도 뭔지 알 것 같지 않나?

FutuerBuilder, StreamBuilder 등등...

 

Stream에의해 새로 build 해야할일이 생기면 알아서 listen해서 효율적으로 re build해주는 위젯이다!

StreamBuilder 빌더에게 필요한 필수 파라미터 2개는 무엇일까?

당연히 스트림과 빌더 아니겠는가?

한번 자세히 코드로 살펴보자

 

바디 부분을 보면 StreamBuilder<T> 임을 알 수 있다. 저기에 우리가 Stream에 의해 받는 data를 입력해주면 된다.

또 스트림 부분을 보면 snapshots()까지만 입력한 것을 알 수 있는데, snapshots()의 return이 stream이기도하고

listen하는 것은 streambuilder가 해주기 때문에 딱히 추가적인 무언가가 필요하진 않다.

 

builder를 보면 context와 snapshot이 있는데, snapshot은 T에서 선언한 데이터 타입이다.

참고로 스트림이다보니 firebase와 통신을 하니까 처음 실행할때는 snapshot이 data를 기다리느라, null이 된다

그래서 connetionState을 통해 따로 처리를 해준 것을 알 수 있다.

 

그다음 list view builder를 통해 데이터에 편안하게 접근해서 원하는 data를 활용해서 위젯들을 만들어주는 모습이다.

 

StreamBuilder는 아주 쉽고, 유용하게 쓸 수 있을 것 같다

반응형
Comments