728x90
반응형
https://firebase.google.com/docs/firestore/manage-data/add-data?hl=ko
Cloud Firestore에 데이터 추가 | Firebase
Firebase 데모 데이가 시작되었습니다. Google 최고의 기술을 활용하여 AI 기반 풀 스택 앱을 빌드하고 성장시키는 방법에 관한 데모를 시청하세요. 의견 보내기 Cloud Firestore에 데이터 추가 컬렉션을
firebase.google.com
데이터 읽기(옵저빙)
- FirebaseFirestore.instance.collection('todo').snapshots()
: collection에 들어가는 단어가 데이터베이스의 '테이블'이다
StreamBuilder<QuerySnapshot>(
stream: FirebaseFirestore.instance.collection('todo').snapshots(),
builder: (context, snapshot) {
final documents = snapshot.data!.docs;
print('StreamBuilder.. documents:${documents.length}}');
print('StreamBuilder.. documents:${documents.first.id}}');
return Expanded(
child: ListView(
children: documents.map((item) => _buildListTile(item)).toList(),
),
);
}
)
stream에서 Firebase쪽에서 데이터가 갱신되면 데이터를 새로 받고
builder에서 해당 데이터를 snapshot데이터로 사용할 수 있게 변환한다.
데이터 쓰기
- FirebaseFirestore.instance.collection("todo") 데이터를 지정해주고
: .doc("LA") : 해당 데이터의 id를 지정해준다
: .set(" -- ") : 해당 데이터의 내부 컬럼 값들을 지정해준다. Map형태로 넣어주면 된다.
: .onError : 데이터 삽입 중 에러가 발생하면 호출
if (_tfController.text.isNotEmpty) {
FirebaseFirestore.instance.collection("todo")
.doc('LA')
.set(Todo(title: _tfController.text).toMap())
.onError((error, stackTrace) => print('Insert... writing Document... ERROR!!! $error'),);
}
데이터 업데이트
- FirebaseFirestore.instance.collection("테이블명").doc(아이디).update(변경할 값);
: .then(function() { } ) 을 사용하면 해당 동작을 수행한 뒤 실행할 함수
todo.isDone = !todo.isDone;
FirebaseFirestore.instance.collection('todo').doc(snapshot.id).update({'isDone': todo.isDone});
728x90
반응형