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의 이러한 기능들을 통해 데이터를 효율적으로 관리하고 애플리케이션에 필요한 데이터 작업을 수행할 수 있습니다.