[flutter] Firebase Database에서 특정 데이터 쿼리하기

Firebase는 모바일 앱의 개발에 도움을 주는 플랫폼으로 알려져 있습니다. Firebase의 Database 서비스를 사용하면 앱의 데이터를 저장하고 실시간으로 동기화할 수 있습니다. 이번 포스트에서는 Flutter 앱에서 Firebase Database에서 특정 데이터를 쿼리하는 방법에 대해 알아보겠습니다.

Firebase Database 쿼리 구성

Firebase Database의 쿼리는 FirebaseDatabase 클래스의 reference 메서드를 사용하여 구성할 수 있습니다. reference 메서드는 데이터의 위치를 지정하여 DatabaseReference를 반환합니다. DatabaseReference는 데이터에 대한 쿼리와 업데이트를 수행할 수 있는 객체입니다.

특정 데이터 쿼리하기

import 'package:firebase_database/firebase_database.dart';

void queryData() {
  DatabaseReference reference = FirebaseDatabase.instance.reference();

  reference.child('users').orderByChild('age').equalTo(30).once().then((DataSnapshot snapshot) {
    if (snapshot.value != null) {
      Map<dynamic, dynamic> values = snapshot.value;
      
      // 쿼리 결과 값 이용하기
      values.forEach((key, value) {
        print('Key: $key');
        print('Value: $value');
      });
    } else {
      print('No data found!');
    }
  });
}

위의 코드는 Firebase Database의 users 경로에서 age 값이 30인 데이터를 쿼리하는 예시입니다. 쿼리 결과로 받아온 snapshotDataSnapshot 객체로, value 프로퍼티를 통해 결과 데이터에 접근할 수 있습니다. 만약 결과 데이터가 존재하지 않으면 snapshot.valuenull입니다.

추가 쿼리 옵션

Firebase Database의 쿼리에는 다양한 옵션을 사용할 수 있습니다. 아래는 일부 옵션의 예시입니다.

orderByChild

reference.child('users').orderByChild('age')

특정 필드를 기준으로 데이터를 정렬합니다.

equalTo

reference.child('users').equalTo('John')

특정 값을 가진 데이터를 쿼리합니다.

limitToFirst

reference.child('users').limitToFirst(10)

처음부터 지정된 개수만큼의 데이터를 가져옵니다.

limitToLast

reference.child('users').limitToLast(10)

마지막부터 지정된 개수만큼의 데이터를 가져옵니다.

마무리

Flutter 앱에서 Firebase Database에서 특정 데이터를 쿼리하는 방법에 대해 알아보았습니다. 위의 예시 코드와 Firebase Database의 쿼리 옵션들을 참고하여 필요한 데이터를 쉽게 가져와 활용할 수 있습니다.

더 자세한 정보는 Firebase Database 문서를 참고하세요!