Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- DART
- println
- Flutter
- react
- 배포
- 앱심사
- 엡
- printf
- 자바스크립트
- nodejs
- 자바 출력 방식
- scss
- riverpod
- Clean Architecture
- lifecycle
- abap
- UI/UX
- JQ
- java
- develop
- LLM
- java 출력
- JS
- unity
- 자바 포맷 출력
- firebase
- ListView
- java 콘솔 출력 차이
- 단축키
- npm
Archives
- Today
- Total
guricode
Flutter Firebase 시작 정리 - 설치부터 초기화까지 본문
Firebase란?
Firebase는 구글이 제공하는 BaaS (Backend as a Service) 플랫폼으로, 별도의 서버 구축 없이 인증, 데이터베이스, 스토리지, 메시징 등 다양한 기능을 제공한다.
Flutter에서는 다양한 Firebase 서비스를 패키지를 통해 사용할 수 있다.
Firebase를 Flutter에서 사용하기 위한 설정
1. Firebase 프로젝트 생성
- Firebase 콘솔에 접속하여 새 프로젝트를 만든다.
- Android/iOS 앱을 추가하고 패키지명을 지정한다.
- google-services.json (Android) / GoogleService-Info.plist (iOS) 파일을 프로젝트에 추가한다.
2. 필수 패키지 설치
flutter pub add firebase_core
※ 사용하려는 기능에 따라 다음 중 추가 설치:
flutter pub add firebase_auth # 인증
flutter pub add cloud_firestore # Firestore
flutter pub add firebase_storage # 스토리지
flutter pub add firebase_crashlytics # 크래시 리포팅
flutter pub add firebase_messaging # 푸시 알림
flutter pub add firebase_analytics # 사용자 분석
main.dart에 Firebase 초기화
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
void main() async {
// 플랫폼 채널 설정 이전에 위젯 바인딩 보장
WidgetsFlutterBinding.ensureInitialized();
// Firebase 초기화
await Firebase.initializeApp();
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Firebase 초기화 예제',
home: Scaffold(
appBar: AppBar(title: Text('Firebase App')),
body: Center(child: Text('Firebase 연결 완료')),
),
);
}
}
WidgetsFlutterBinding.ensureInitialized() 왜 필요할까?
- Firebase.initializeApp()은 플랫폼 채널(Android, iOS의 native 코드와 통신)을 사용하는 비동기 작업이다.
- 따라서 main() 함수가 비동기로 실행될 수 있도록 보장해줘야 한다.
- 이를 위해 Flutter에서 바인딩을 먼저 초기화하는 것이 WidgetsFlutterBinding.ensureInitialized()이다.
Firebase에서 사용할 수 있는 주요 서비스
서비스 이름 설명
| Authentication | 이메일, 구글, 애플 등으로 로그인 기능 |
| Cloud Firestore | 실시간 문서 기반 데이터베이스 (NoSQL) |
| Realtime Database | 키-값 기반 실시간 데이터베이스 (Legacy) |
| Cloud Storage | 이미지, 동영상 등 대용량 파일 저장 |
| Cloud Functions | 서버리스 백엔드 함수 실행 |
| Remote Config | 앱의 설정 값을 원격에서 실시간으로 조정 |
| Firebase Messaging | FCM을 통한 푸시 알림 전송 |
| Analytics | 사용자의 행동 분석 (화면 전환, 클릭 수 등) |
| Crashlytics | 앱에서 발생한 오류를 실시간으로 추적, 보고 |
보너스: Remote Config란?
- 예시: 앱에 다크모드 기능을 추가했지만 서버에서 그 기능을 비활성화할 수도 있음
- A/B 테스트, 기능 공개 일정 등을 앱 업데이트 없이 서버에서 조정 가능
flutter pub add firebase_remote_config
- Firebase는 다양한 백엔드 기능을 간단한 패키지 설치와 설정으로 사용할 수 있게 도와주는 도구이다.
- 앱 개발에서 "기능 개발 + 오류 추적"은 필수인데, Firebase는 이 둘을 모두 충족해준다.
- 특히 Crashlytics와 Analytics는 운영 단계에서 반드시 필요한 도구다.
'앱 > Flutter&Dart' 카테고리의 다른 글
| [TIL] 20250819 - GoRouter,Responsive UI (0) | 2025.08.19 |
|---|---|
| Flutter ThemeExtension (2) | 2025.08.18 |
| 트러블슈팅: “프로필 이미지 선택만 했는데 바로 서버에 업로드됨” (2) | 2025.08.12 |
| Flutter iOS 시뮬레이터에서 위치 테스트하는 방법 (3) | 2025.08.11 |
| Flutter SDK 버전 오류 트러블슈팅: Dart SDK 버전 불일치 (1) | 2025.08.08 |