StreamBuilder 로 Firebase의 collection 데이터를 연결하는 샘플코드
/* 플러그인 정보 */
firebase_core: ^0.7.0
firebase_storage: ^7.0.0
cloud_firestore: ^0.16.0
Widget _buildBody() {
return WillPopScope(
child: StreamBuilder(
stream: FirebaseFirestore.instance
.collection('post')
.doc(docID)
.collection('post_sub')
.orderBy('datetime')
.snapshots(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (!snapshot.hasData) {
return Center(child: CircularProgressIndicator());
}
if (snapshot.data != null && !snapshot.hasError) {
// ??은 snapshot.data.docs 가 널인경우를 대비한 안전코드,
// if null, var items = []
var items = snapshot.data.docs ?? [];
if (items.length < 1) {
return Text(_multiMsg.strNoData);
}
return _buildCarouselSlider(items);
}
return Text(_multiMsg.strNoList);
},
),
onWillPop: () {
// 수동 back 버튼에서 특별한 처리가 필요한경우 여기서 처리하면 됨.
Navigator.of(context).pop(true);
return Future.value(true);
},
);
}
'Flutter > 00 Legacy' 카테고리의 다른 글
[Flutter] Provider with Flutter sample - ChangeNotifierProvider (0) | 2021.05.04 |
---|---|
[Flutter] Bloc, Stream - setState 을 Bloc, Stream 으로 변경 (0) | 2021.05.03 |
[Flutter] Bloc, Stream - setState 로 구현 (0) | 2021.05.03 |
[Flutter] CRUD with FirebaseFirestore & FirebaseStorage (2) | 2021.02.03 |
[Flutter] Uploading image to FirebaseStorage (async/await) (0) | 2021.02.03 |