[flutter] Firebase Database에서 데이터 필터링하기

Firebase는 실시간 데이터베이스를 제공하여 애플리케이션에서 실시간 데이터를 저장하고 동기화할 수 있게 해줍니다. 이번 포스트에서는 Flutter에서 Firebase 데이터베이스에서 데이터를 필터링하는 방법을 알아보겠습니다.

Firebase 프로젝트 설정하기

우선 Firebase 콘솔에서 프로젝트를 생성하고, Flutter 프로젝트에 Firebase를 추가해야 합니다. Firebase 프로젝트에 데이터베이스를 생성한 후, 액세스 키를 얻어야 합니다. Firebase 프로젝트를 설정하는 방법은 Firebase 공식 문서를 참고하시기 바랍니다.

Firebase Database 의존성 추가하기

Flutter 프로젝트에서 Firebase Database를 사용하기 위해 firebase_database 패키지를 추가해야 합니다. pubspec.yaml 파일에 다음 코드를 추가해주세요:

dependencies:
  firebase_database: ^9.0.0

필터링된 데이터 로드하기

Firebase Database에서 데이터를 필터링하려면 Query를 사용해야 합니다. Query 객체는 쿼리 조건을 설정하고 데이터를 가져오는 데 사용됩니다. 예를 들어, 사용자의 나이가 18세 이상인 데이터를 가져와보겠습니다.

import 'package:firebase_database/firebase_database.dart';

void fetchFilteredData() {
  var databaseReference = FirebaseDatabase.instance.reference();
  
  var query = databaseReference.child('users').orderByChild('age').startAt(18);
  
  query.once().then((DataSnapshot snapshot) {
    if (snapshot.value != null) {
      Map<dynamic, dynamic> values = snapshot.value;
      values.forEach((key, value) {
        print("User: $key, Age: ${value['age']}");
      });
    }
  });
}

위의 코드에서, users 경로의 데이터에서 age 필드를 기준으로 필터링된 쿼리를 생성하고, 한 번만 데이터를 가져옵니다. startAt() 메소드를 사용하여 나이가 18세 이상인 데이터를 가져올 수 있습니다. DataSnapshot 객체를 사용하여 데이터를 처리하고 출력합니다.

결론

Flutter에서 Firebase Database에서 데이터를 필터링하는 방법을 살펴보았습니다. Query 객체를 사용하여 원하는 조건으로 데이터를 가져올 수 있습니다. Firebase Database의 다른 쿼리 메소드를 사용하여 더 복잡한 필터링도 가능합니다.