StreamBuilder와 Firebase에 컬랙션 등록 방법

미미제이·2024년 9월 12일

flutter

목록 보기
7/7

플러터에서 stream 사용하려면
streambuilder 위젯 사용
스트림으로 전달되는 데이터 (이벤트) 구독가능
새로 리빌드 되며 최신 데이터 반영 가능

스트림이란 데이터 소스가 바뀔 때 마다 새로운 값을 전달해주는 단순한 다트의 한 객체
모든 스트림의 과정은 클라우드 파이어스토어 패키지에 의해 관리됨

snapshot메소드는 스트림을 반환 =>데이터가 바뀔때마다 새로운 밸류값 전달

snapshot.data 스냅샷 뒤 데이터를 불러오면 실제적으로 스트림으로 전달받은 데이터에 접근 가능
!: 데이터 필드는 당연히 데이터를 가지고 있어야하기 때문

        body: StreamBuilder(
          stream: FirebaseFirestore.instance.collection('chats/BIbqhjgryoag9EFFXa7U/message').snapshots(), //클라우드 파이어스토어에 접근
          builder: (BuildContext context, AsyncSnapshot<QuerySnapshot<Map<String, dynamic>>> snapshot) {
           if(snapshot.connectionState == ConnectionState.waiting){
             return Center(
               child: CircularProgressIndicator(),
             );
           }
            final docs = snapshot.data!.docs;
            return ListView.builder(
              itemCount: docs.length,
              itemBuilder: (context, index) {
                return Container(
                  padding: EdgeInsets.all(8),
                  child: Text(
                    docs[index]['text'],
                    style: TextStyle(fontSize: 20),
                  ),
                );
              },
            );
          }, //가장 최신의 스냅샷을 가져오기 위한 클래스.
        )

이메일과 패스워드 통해 새로운 유저를 파이어베이스에 등록.
파이어베이스에 'user' 라는 새로운 컬렉션 등록.
새로운 유저의 아이디를 등록함 (아이디:userName과 userEmail 동록 됨)

profile
기록하는 미미

0개의 댓글