Flutter에서 Firebase 설정하기

Flutter에서 Firebase 설정하기: 빠르고 쉽게 따라하는 가이드

Google이 제공하는 강력한 모바일 개발 플랫폼 Firebase를 Flutter 프로젝트에 연동하는 과정을 단계별로 정리해보겠습니다. Firebase는 Authentication, Firestore, Storage, Analytics 등 앱 개발에 필요한 다양한 기능을 손쉽게 사용할 수 있게 해주는 SaaS 서비스인데요, Flutter 3.0부터 공식적으로 Flutter 플랫폼 등록을 지원하면서 설정이 더욱 간편해졌습니다.


1. Firebase란?

Firebase는 Google이 만든 모바일·웹 애플리케이션 개발 플랫폼입니다.
주요 제공 기능은 다음과 같습니다:

  • Authentication: 구글, 페이스북 등 다양한 로그인 지원

  • Database: 실시간 데이터베이스 & Firestore

  • Storage: 대용량 파일 업로드/다운로드

  • Analytics: 이벤트 추적, A/B 테스트, Crashlytics 등

  • FCM: 푸시 알림 전송

  • Machine Learning, Dynamic Links 등도 지원합니다.
    초기 비용은 무료이지만, 무료 제공량 초과 시 유료로 전환되니 주의하세요.

Firebase는 앱과의 연동이 쉽고, 배포까지 빠르게 할 수 있다는 것이 큰 장점입니다 


2. Firebase 프로젝트 생성

  1. Firebase 콘솔 접속
    Firebase 홈페이지(https://console.firebase.google.com/)에 접속한 뒤, Google 계정으로 로그인합니다.

  2. 새 프로젝트 추가

    • ‘프로젝트 추가’ 버튼 클릭

    • 프로젝트 이름 입력 (보통 앱 이름과 동일하게 설정)

    • Analytics 사용 여부 선택 후 ‘계속’ 클릭

    • 계정 선택 또는 새 계정 생성

    • ‘프로젝트 만들기’ 클릭하여 생성 완료

    설정 과정은 3~4단계로 매우 간단하며, 클릭 몇 번이면 끝납니다 


3. 플랫폼 등록

Firebase 프로젝트를 생성한 뒤, 실제 Flutter 앱과 연결할 플랫폼을 등록해야 합니다.

3.1 Flutter 플랫폼 선택

  • Firebase 콘솔의 프로젝트 홈 화면에서 Flutter 아이콘 클릭

  • Flutter 3.0 미만 버전은 Android/iOS를 개별 등록해야 했지만, 3.0 이상부터는 Flutter를 한 번에 등록할 수 있습니다.

3.2 Firebase CLI 설치

터미널을 이용해 Firebase CLI(Command Line Interface)를 설치합니다.

윈도우즈
Windows용 Firebase CLI 바이너리를 다운로드, https://firebase.tools/bin/win/instant/latest
 - firebase-tools-instant-win.exe
npm(노드 패키지 관리자)을 사용하여 Firebase CLI를 설치
npm install -g firebase-tools
리눅스
curl -sL https://firebase.tools | bash

설치 후 firebase login 명령을 실행하여 로그인 상태를 확인하세요.

Flutter SDK를 설치하세요. https://docs.flutter.dev/get-started/install

FlutterFire CLI 설치 및 실행

디렉터리에서 다음 명령어를 실행합니다.
dart pub global activate flutterfire_cli

그런 다음 Flutter 프로젝트 디렉터리의 루트에서 다음 명령어를 실행합니다.
flutterfire configure --project=bucketlistwithfirebase-523d0
이렇게 하면 플랫폼별 앱이 Firebase에 자동으로 등록되고 lib/firebase_options.dart 구성 파일이 Flutter 프로젝트에 추가됩니다.

Firebase를 초기화하려면 새 firebase_options.dart 파일의 구성으로 firebase_core 패키지에서 Firebase.initializeApp을 호출합니다.

import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';

// ...

await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
);
그런 다음 사용할 Firebase 제품의 Flutter 플러그인을 추가하고 사용합니다.
https://console.firebase.google.com/project/bucketlistwithfirebase-523d0/overview

  1. Flutter 프로젝트 디렉터리에서 다음 명령어를 실행하여 core 플러그인을 설치합니다.

    flutter pub add firebase_core
    
  2. Flutter 프로젝트 디렉터리에서 다음 명령어를 실행하여 Flutter 앱의 Firebase 구성이 최신 상태인지 확인합니다.

    flutterfire configure
    
  3. lib/main.dart 파일에서 Firebase core 플러그인 및 앞에서 생성한 구성 파일을 가져옵니다.

    import 'package:firebase_core/firebase_core.dart';
    import 'firebase_options.dart';
    
  4. 또한 lib/main.dart 파일에서 구성 파일로 내보낸 DefaultFirebaseOptions 객체를 사용하여 Firebase를 초기화합니다.

    WidgetsFlutterBinding.ensureInitialized();
    await Firebase.initializeApp(
      options: DefaultFirebaseOptions.currentPlatform,
    );
    runApp(const MyApp());
    
  5. Flutter 애플리케이션을 다시 빌드합니다.

    flutter run
    

데모 프로젝트를 사용하려면 Firebase 에뮬레이터를 시작하고 lib/main.dart 파일에서 demoProjectId(demo-로 시작해야 함)를 사용하여 Firebase를 초기화합니다.

  await Firebase.initializeApp(
    demoProjectId: "demo-project-id",
  );

3.3 Flutter 프로젝트 연동

  1. 터미널 명령 실행

    • Firebase 프로젝트 연결:

      firebase projects:list
      firebase use <프로젝트_아이디>
      
    • FlutterFire 설정:

      flutter pub add firebase_core
      flutterfire configure
      
  2. 생성된 파일 확인

    • lib/firebase_options.dart

    • Android: android/app/google-services.json

    • iOS: ios/Runner/GoogleService-Info.plist

  3. 초기화 코드 추가

    import 'package:firebase_core/firebase_core.dart';
    import 'firebase_options.dart';
    
    Future<void> main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp(
        options: DefaultFirebaseOptions.currentPlatform,
      );
      runApp(MyApp());
    }
    

    위 코드로 Firebase 초기화를 마치고, Android/iOS 에뮬레이터에서 정상 빌드되는지 확인하세요.


4. 마무리

지금까지 Firebase 프로젝트 생성부터 Flutter 앱 연동까지의 과정을 빠르게 살펴보았습니다.
과거에는 플랫폼별로 따로 등록해야 해 다소 번거로웠지만, Flutter 지원이 추가되면서 설정이 훨씬 수월해졌죠.
이제 Authentication, Firestore, Storage 등 Firebase의 다양한 기능을 활용할 수 있습니다.

댓글 쓰기

0 댓글