[flutter] Firebase_core를 사용하여 플러터 앱에서 실시간 데이터베이스 구현하기

플러터(Flutter)는 구글이 개발한 크로스 플랫폼 모바일 애플리케이션 개발 프레임워크로, 다양한 기능과 편리한 라이브러리를 제공합니다. Firebase는 사용하기 쉬운 모바일 백엔드 개발 플랫폼으로, 실시간 데이터베이스를 구현하는 데 많이 사용됩니다. 이번 글에서는 Flutter 앱에서 Firebase_core를 사용하여 실시간 데이터베이스를 구현하는 방법에 대해 알아보겠습니다.

목차

Firebase 프로젝트 설정 및 프로젝트 설정 파일 추가

  1. Firebase 콘솔에 접속하여 프로젝트를 생성합니다.
  2. 생성된 프로젝트를 선택하고, “프로젝트 설정”으로 이동합니다.
  3. “앱 추가”를 클릭하여 Flutter 앱을 추가합니다.
  4. Flutter 앱의 패키지 이름을 입력하고, “앱 등록”을 클릭합니다.
  5. 구성 파일(google-services.json)을 다운로드하여 프로젝트의 android/app 디렉토리에 추가합니다.

Firebase_core 패키지 추가하기

프로젝트 설정 파일을 추가한 후, pubspec.yaml 파일에 firebase_core 패키지를 추가해야 합니다. flutter_pubspec로 프로젝트 루트 디렉토리에 접근한 후, firebase_core를 검색하여 패키지를 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  firebase_core: ^1.6.0

Firebase 앱 초기화하기

Firebase_core 패키지를 추가한 후, Flutter 앱에서 Firebase 앱을 초기화해야 합니다. 이를 위해 main.dart 파일의 main() 함수에 아래와 같은 코드를 추가합니다.

import 'package:firebase_core/firebase_core.dart';
 
void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());
}

Firebase 앱 초기화를 위해 Firebase.initializeApp() 함수를 호출합니다.

실시간 데이터베이스 사용하기

Firebase의 실시간 데이터베이스를 사용하기 위해서는 flutter_database 패키지를 추가해야 합니다. flutter_database를 검색하여 패키지를 추가합니다.

dependencies:
  firebase_database: ^11.2.0

데이터 가져오기

Firebase의 실시간 데이터베이스에서 데이터를 가져오려면 FirebaseDatabase.instance.reference()를 사용해서 데이터베이스의 루트를 참조해야 합니다. 아래 코드는 데이터베이스에 있는 “users” 경로의 데이터를 가져오는 예제입니다.

import 'package:firebase_database/firebase_database.dart';

void getUsers() {
  DatabaseReference usersRef = FirebaseDatabase.instance.reference().child('users');
  usersRef.once().then((DataSnapshot snapshot) {
    // 데이터 가져오기 성공 시 동작할 코드
    print(snapshot.value);
  }).catchError((error) {
    // 데이터 가져오기 실패 시 동작할 코드
    print(error);
  });
}

데이터 쓰기

Firebase의 실시간 데이터베이스에 데이터를 쓰려면 set 메서드를 사용해야 합니다. 아래 코드는 데이터베이스의 “users” 경로에 데이터를 쓰는 예제입니다.

import 'package:firebase_database/firebase_database.dart';

void writeData() {
  DatabaseReference usersRef = FirebaseDatabase.instance.reference().child('users');
  usersRef.set({
    'name': 'John',
    'age': 25,
  }).then((value) {
    // 데이터 쓰기 성공 시 동작할 코드
    print('Data written successfully!');
  }).catchError((error) {
    // 데이터 쓰기 실패 시 동작할 코드
    print(error);
  });
}

데이터 업데이트하기

Firebase의 실시간 데이터베이스에서 데이터를 업데이트하려면 update 메서드를 사용해야 합니다. 아래 코드는 데이터베이스의 “users” 경로에 있는 데이터를 업데이트하는 예제입니다.

import 'package:firebase_database/firebase_database.dart';

void updateData() {
  DatabaseReference usersRef = FirebaseDatabase.instance.reference().child('users');
  usersRef.update({
    'name': 'John Doe',
  }).then((value) {
    // 데이터 업데이트 성공 시 동작할 코드
    print('Data updated successfully!');
  }).catchError((error) {
    // 데이터 업데이트 실패 시 동작할 코드
    print(error);
  });
}

데이터 삭제하기

Firebase의 실시간 데이터베이스에서 데이터를 삭제하려면 remove 메서드를 사용해야 합니다. 아래 코드는 데이터베이스의 “users” 경로에 있는 데이터를 삭제하는 예제입니다.

import 'package:firebase_database/firebase_database.dart';

void deleteData() {
  DatabaseReference usersRef = FirebaseDatabase.instance.reference().child('users');
  usersRef.remove().then((value) {
    // 데이터 삭제 성공 시 동작할 코드
    print('Data deleted successfully!');
  }).catchError((error) {
    // 데이터 삭제 실패 시 동작할 코드
    print(error);
  });
}

이제 Firebase_core를 사용하여 플러터 앱에서 실시간 데이터베이스를 구현하는 방법을 알아보았습니다. Firebase를 사용하면 더 많은 기능을 활용할 수 있으며, Firebase의 다른 기능들도 함께 사용할 수 있습니다. Firebase 문서를 참조하여 추가적인 내용을 학습하고, 앱 개발에 활용해보세요!

참고자료