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
복사

