Flutter Firebase
Firebase Firestore는 유연한 NoSQL 클라우드 데이터베이스로, 실시간 데이터 동기화 및 오프라인 지원 등의 기능을 제공합니다. Firestore는 다양한 데이터 작업을 위해 여러 함수를 제공하며, 주요 함수들은 다음과 같습니다:
1. 데이터 읽기
문서 읽기: 특정 컬렉션에서 단일 문서를 읽습니다.
FirebaseFirestore.instance.collection('컬렉션명').doc('문서ID').get();
컬렉션 읽기: 특정 컬렉션의 모든 문서를 읽습니다.
FirebaseFirestore.instance.collection('컬렉션명').get();
쿼리 사용: 특정 조건에 맞는 문서를 검색합니다.
FirebaseFirestore.instance.collection('컬렉션명').where('필드', isEqualTo: '값').get();
리스너 추가: 실시간으로 데이터 변경을 감지합니다.
FirebaseFirestore.instance.collection('컬렉션명').snapshots().listen((data) { // 데이터 변경 시 처리 });
2. 데이터 쓰기
문서 생성/업데이트: 새 문서를 생성하거나 기존 문서를 업데이트합니다.
FirebaseFirestore.instance.collection('컬렉션명').doc('문서ID').set(데이터);
문서 수정: 기존 문서의 특정 필드만 업데이트합니다.
FirebaseFirestore.instance.collection('컬렉션명').doc('문서ID').update({'필드': '값'});
문서 삭제: 특정 문서를 삭제합니다.
FirebaseFirestore.instance.collection('컬렉션명').doc('문서ID').delete();
3. 트랜잭션과 배치
트랜잭션: 여러 작업을 하나의 작업으로 묶어 실행합니다. 작업 중 하나라도 실패하면 전체가 취소됩니다.
FirebaseFirestore.instance.runTransaction((transaction) async { // 트랜잭션 작업 });
배치 쓰기: 여러 쓰기 작업을 한 번에 실행합니다.
WriteBatch batch = FirebaseFirestore.instance.batch(); // 배치에 작업 추가 batch.commit();
주의사항
- Firestore에서 데이터를 읽고 쓸 때는 보안 규칙을 올바르게 설정해야 합니다.
- 리스너를 추가할 때는 필요 없어진 리스너는 제거하여 리소스 누수를 방지합니다.
- 트랜잭션과 배치 쓰기는 복잡한 데이터 작업에 유용하지만, 사용 방법을 잘 이해하고 사용해야 합니다.
Firestore의 이러한 기능들을 통해 데이터를 효율적으로 관리하고 애플리케이션에 필요한 데이터 작업을 수행할 수 있습니다.