데브허브 | DEVHUB | How to Fetch Data from Firebase Firestore SubCollections in Flutter | Firebase Sub-CollectionHow to Fetch Data from Firebase Firestore SubCollections in Flutter | Firebase Sub-Collection
- Firebase Firestore의 중첩된 서브컬렉션에서 데이터를 가져오는 방법을 설명합니다. 📚
- 라이브 코딩 대신 단계별 지침과 코드 설명을 통해 과정을 안내합니다. 🧑🏫
faculty (컬렉션) -> course (서브컬렉션) -> semester (중첩 서브컬렉션)의 계층적 데이터 구조를 예시로 사용합니다. 🌳
- 각 컬렉션/서브컬렉션에 해당하는 Dart 모델(예:
Faculty, Course, Semester)을 생성하는 것이 첫 번째 단계입니다. 🏗️
- Firestore 데이터를 모델 객체로 쉽게 매핑하기 위해
factory constructor 사용을 강조합니다. 🔄
- 데이터베이스 작업을 위해
FirebaseFirestore.instance를 한 번 초기화하고 재사용합니다. ⚙️
- 모든 교수진, 강좌 및 학기 데이터를 비동기적으로 가져오는
getFaculty와 같은 메서드를 생성합니다. 🚀
- 중첩된 서브컬렉션의 데이터를 가져오기 위해 스냅샷 내에서 여러 개의 루프를 사용하여 각 계층을 처리합니다. ➰
- 원시 Firestore 데이터를 모델 객체로 변환하고 계층적 관계를 구축하는 과정이 필수적입니다. 🧩
- 데이터 가져오기 과정 중 발생할 수 있는 오류를 처리하고 디버깅을 위해
try-catch 블록을 사용합니다. 🛡️
- UI에서는
FutureBuilder를 사용하여 비동기 데이터 로딩 상태(대기, 오류, 데이터 없음)를 관리하고 데이터를 표시합니다. ⏳
ExpansionTile 위젯을 활용하여 교수진, 강좌, 학기 등 중첩된 데이터 구조를 시각적으로 표현합니다. 📊
- 이러한 중첩 서브컬렉션 구조는 채팅 앱과 같은 복잡한 실제 프로젝트에서 흔히 사용됩니다. 💬