Search

Firestore 사용법 정리 with Flutter

1. 한번 가져오기

1-1 커스텀 객체로 불러오기

1-2 리스트로 된 커스텀 객체로 불러오기

1.
Future<List<커스텀클래스>> 를 리턴하는 async 함수 정의
2.
위젯에서 해당 메서드 호출하기
a.
initState() {} 에서 위젯 초기화와 함께 호출 및 데이터 세팅
b.
setState() 와 함께 호출하기

2. 리스너 만들기

2-1.

1.
static 메서드로 Stream<QuerySnapshot<Map<String, dynamic>>> 를 리턴하는 함수를 만들어준다.
class FirestoreService { static Stream<QuerySnapshot<Map<String, dynamic>>> getStream() { print("DEBUG: stream Entries"); return entryDB .orderBy('enrolledAt') .where("eventID", isEqualTo: "123456") .snapshots(); } }
Dart
복사
2.
위에서 만든 Stream 타입을 리턴하는 함수를 StreamBuilder 위젯을 만드는 과정에서 호출해준다.
StreamBuilder<QuerySnapshot>( stream: FirestoreService.getStream(), builder: (context, snapshot) { if (snapshot.hasError) { print("ERROR: ${snapshot.error}"); return Center( child: Text('불러올 수 없습니다.'), ); } if (snapshot.connectionState == ConnectionState.waiting) { return Center( child: CircularProgressIndicator(color: Colors.black), ); } List<DocumentSnapshot> documents = snapshot.data!.docs; return ... ); })),
Dart
복사