Firebase 데이터 저장 & 가져오기 [Stream]

장윤찬·2022년 2월 13일
0

Flutter X Firebase

목록 보기
3/3
post-thumbnail

Cloud Firestore

Cloud Firestore를 통해 만든 NoSql 형식의 데이터베이스에 데이터를 저장/가져올 것이다.

데이터 저장

코드 작성시 데이터베이스의 컬렉션명과 필드명 주의

final firestore = FirebaseFirestore.instance;
'
'
firestore.collection('messages').add({'sender': logInUser.email, 'text': messageText});
'
'

데이터 가져오기

Stream 데이터타입을 사용하여, 데이터베이스의 변화를 트래킹하고 가져오자.

void messagesStream() async {
  await for (var snapshot in firestore.collection('messages').snapshots()) {
    for (var message in snapshot.docs) {
      print(message.data());
    }
  }
}
'
'
messagesStream();

단순히 데이터를 가져오는것이 아니라, Firestore의 messages 컬렉션이 변할때마다 값을 가져온다.
snapshot을 통해 messeges collection의 변화를 트랙킹하고 변화된 정보를 반복문으로 돌려주는 기능을 제공해준다.

Stream

snapshots은 반환데이터는 Stream이다. 스트림은 데이터나 이벤트가 들어오는 통로이다. 데이터의 변경사항을 관찰하고 이를 인식하여 특정 동작을 수행하게 해준다. [옵저버패턴]
앱을 만들다 보면 데이터를 처리할 일이 많은데, 어느 타이밍에 데이터가 들어올지 확실히 알기 어려운 비동기 작업을 할 때 주로 쓰인다.

profile
Flutter 학습 일기

0개의 댓글