플러터에서 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 동록 됨)
