[flutter] 플러터(Flutter)와 Firebase 연동하기

이번 포스트에서는 플러터(Flutter) 앱과 Firebase를 연동하는 방법에 대해 알아보겠습니다.

Firebase는 Google의 클라우드 기반 서비스로, 앱의 백엔드 기능을 제공하는 플랫폼입니다. Firebase는 데이터베이스, 인증, 스토리지, 알림 등 다양한 기능을 제공하며, 개발자들이 앱 개발에 집중할 수 있도록 도와줍니다.

1. Firebase 프로젝트 설정

Firebase와의 연동을 위해서는 먼저 Firebase 콘솔에서 프로젝트를 생성해야합니다. Firebase 콘솔에 접속하여 “새 프로젝트 만들기”를 선택하고 프로젝트 이름을 설정합니다.

2. Flutter 프로젝트에 Firebase 종속성 추가

Flutter 프로젝트의 pubspec.yaml 파일에 Firebase 관련 종속성을 추가해야합니다. 아래와 같이 firebase_core와 필요한 다른 Firebase 패키지를 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  firebase_core: ^1.0.0
  # 다른 필요한 Firebase 패키지 추가

추가한 종속성을 적용하기 위해서는 터미널에서 flutter pub get 명령을 실행해야합니다.

3. Firebase 설정 파일 추가

Firebase와의 연동을 위해 google-services.json 또는 GoogleService-Info.plist 파일을 Flutter 프로젝트에 추가해야합니다.

Android 설정

Android 프로젝트에 Firebase를 추가하기 위해선, android/app 디렉토리 내에 google-services.json 파일을 추가해야합니다.

iOS 설정

iOS 프로젝트에 Firebase를 추가하기 위해선, ios/Runner 디렉토리 내에 GoogleService-Info.plist 파일을 추가해야합니다.

4. Firebase 초기화

Flutter 앱에서 Firebase를 사용하기 위해선, 앱의 진입점에 Firebase를 초기화해야합니다.

Android 초기화

Android의 경우 main.dart 파일의 void main() 함수 내에서 Firebase를 초기화 해야합니다. 아래 코드를 추가하세요.

import 'package:firebase_core/firebase_core.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());
}

iOS 초기화

iOS의 경우 AppDelegate.swift 파일의 application(_:didFinishLaunchingWithOptions:) 메서드에서 Firebase를 초기화 해야합니다. 다음 코드를 추가하세요.

import UIKit
import Firebase

class AppDelegate: UIResponder, UIApplicationDelegate {
  // ...

  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    FirebaseApp.configure()
    return true
  }

  // ...
}

필요에 따라서 추가적인 설정이 필요할 수 있습니다. Firebase 콘솔에서 제공하는 문서를 참고하여 진행하시기 바랍니다.

5. Firebase 기능 사용

이제 Firebase가 Flutter 앱과 연동되었으므로, Firebase의 다양한 기능을 활용할 수 있습니다. 예를 들어 Firebase의 인증 기능을 사용하려면, firebase_auth 패키지를 추가하고 관련 코드를 작성하면 됩니다.

import 'package:firebase_auth/firebase_auth.dart';

final FirebaseAuth _auth = FirebaseAuth.instance;

void signIn() async {
  UserCredential result = await _auth.signInWithEmailAndPassword(
    email: 'example@example.com',
    password: 'password123',
  );
  User user = result.user;
  // 로그인 성공 후 처리
}

이와 같이 필요한 Firebase 패키지를 추가하고 해당 패키지의 문서를 참고하여 사용하시면 됩니다.

마무리

이제 플러터(Flutter)와 Firebase의 연동 방법에 대해 알아보았습니다. Firebase는 다양한 기능을 제공하므로, 앱 개발에 큰 도움이 될 것입니다. 자세한 내용은 Firebase 문서를 참고하시기 바랍니다.

플러터(Flutter)와 Firebase의 연동에 대한 더 자세한 내용은 다음 글에서도 확인할 수 있습니다: Firebase 공식 문서.