[flutter] Firebase Firestore에 복수의 데이터 읽기

Firebase Firestore는 클라우드 기반 NoSQL 데이터베이스로, 플러터(Flutter) 앱에서 데이터를 읽고 쓰는 데 사용할 수 있습니다. 이번 글에서는 Firestore에서 복수의 데이터를 읽는 방법에 대해 알아보겠습니다.

Firestore에 데이터 구조 예시

Firestore는 컬렉션(collection)과 그 안에 있는 문서(document)로 구성됩니다. 각 문서는 키-값(key-value) 쌍으로 이루어진 필드(fields)를 가지고 있습니다. 복수의 데이터를 읽기 위해서는 컬렉션에 있는 문서들의 데이터를 가져와야 합니다.

예를 들어, Firestore에 ‘users’라는 컬렉션이 있고 그 안에 ‘name’과 ‘age’라는 필드가 있는 문서들이 있다고 가정해봅시다. 사용자들의 이름과 나이를 모두 읽어오는 예시를 살펴보겠습니다.

복수의 데이터 읽기

import 'package:cloud_firestore/cloud_firestore.dart';

Future<void> readUsersData() async {
  QuerySnapshot usersSnapshot = await FirebaseFirestore.instance.collection('users').get();

  if (usersSnapshot.docs.isEmpty) {
    // 데이터 없음
    print('No Users data available');
    return;
  }

  for (QueryDocumentSnapshot userDocument in usersSnapshot.docs) {
    Map<String, dynamic> userData = userDocument.data();
    String name = userData['name'];
    int age = userData['age'];

    // 데이터 활용
    print('Name: $name, Age: $age');
  }
}

위 코드에서 readUsersData() 함수는 users 컬렉션에 있는 모든 문서들의 데이터를 읽고 출력하는 예시입니다.

  1. FirebaseFirestore.instance.collection('users').get()를 호출하여 ‘users’ 컬렉션의 모든 문서를 가져옵니다.
  2. usersSnapshot.docs를 통해 조회된 문서들의 리스트에 접근합니다.
  3. 각 문서에서 필드 데이터를 가져와 userData 변수에 저장합니다.
  4. 필드 이름을 사용하여 원하는 데이터를 가져올 수 있습니다.
  5. 데이터를 활용하기 위해 출력하거나 다른 작업을 수행할 수 있습니다.

요약

Firebase Firestore에서 복수의 데이터를 읽는 방법에 대해 알아보았습니다. 위의 예시 코드를 참고하여 데이터베이스에서 필요한 정보를 가져와서 원하는 대로 활용할 수 있습니다. 저는 이 글이 유용하길 바랍니다!

참고 자료