(Flutter-기초 강의) 18. Flutter에서 Firebase 사용하기 (소개 및 프로젝트 설정)

Firebase 란 무엇인가?

개요

Firebase는 구글에서 제공하는 클라우드 기반 서비스로 모바일 및 웹 애플리케이션 개발 플랫폼입니다.

이는 개발자들이 더 빠르고 쉽게 고품질의 앱을 개발할 수 있도록 돕는 다양한 도구와 서비스를 제공합니다.

Firebase는 데이터베이스, 인증, 분석, 파일 저장 등 다양한 기능을 지원하며, 이를 통해 개발자는 앱의 백엔드 구축에 소요되는 시간과 노력을 크게 줄일 수 있습니다.

공식 홈페이지: firebase.google.com

서비스

Firebase의 주요 서비스들을 살펴보겠습니다:

실시간 데이터베이스 (Realtime Database):

Firebase의 실시간 데이터베이스는 클라우드 호스팅 데이터베이스입니다.

데이터를 JSON 형태로 저장하고, 실시간으로 모든 클라이언트에 데이터를 동기화합니다.

이를 통해 애플리케이션 사용자가 데이터 변화를 즉시 볼 수 있습니다.

인증 (Authentication):

Firebase 인증은 간편한 로그인 프로세스를 제공합니다.

이메일/패스워드, 전화번호, Google, Facebook, Twitter 등 다양한 방법으로 사용자를 인증할 수 있습니다.

클라우드 함수 (Cloud Functions):

Firebase의 Cloud Functions는 서버리스 프레임워크로, 백그라운드 이벤트, HTTPS 요청, Admin SDK 또는 Cloud Scheduler 작업에 의해 트리거되는 이벤트에 대응하여 백엔드 코드를 자동으로 실행합니다.

JavaScript, TypeScript 또는 Python 코드는 Google Cloud 인프라에 저장되며 관리되는 환경에서 실행됩니다.

서버를 관리하고 확장할 필요가 없습니다.

호스팅 (Hosting):

Firebase 호스팅은 웹 앱, 정적 및 동적 컨텐츠, 마이크로서비스를 위한 빠르고 안전한 호스팅 서비스입니다.

개발자들이 웹 컨텐츠를 전문적으로 호스팅할 수 있는 환경을 제공하며, 한 번의 명령으로 웹 앱을 배포하고 전 세계 CDN(콘텐츠 전송 네트워크)에 정적 및 동적 컨텐츠를 제공할 수 있습니다.

스토리지 (Storage):

Firebase 스토리지는 파일 저장 및 사용자 생성 콘텐츠를 위한 안전한 공간을 제공합니다.

예를 들어, 사용자가 업로드한 사진이나 동영상을 저장하고 관리할 수 있습니다.

애널리틱스 (Analytics):

Google Analytics는 앱 사용 및 사용자 참여에 대한 통찰력을 제공하는 무료 앱 측정 솔루션입니다.

Firebase의 핵심에는 무제한 분석 솔루션인 Google Analytics가 있으며, 이는 Firebase 기능과 통합되어 최대 500개의 다양한 이벤트에 대한 무제한 보고를 제공합니다.

Cloud Firestore:

최신 데이터베이스 옵션으로, 실시간 데이터베이스보다 더 풍부한 쿼리 기능과 더욱 확장된 데이터 구조를 제공합니다

요금제

일정량 까진 무료로 사용할 수 있고, 그 이상 넘어가면 비용이 청구되는 방식

https://firebase.google.com/pricing

  1. Spark Plan (무료 플랜):
    • Firebase의 기본적인 기능을 무료로 이용할 수 있는 플랜입니다.
    • 개발 단계에서의 테스트나 소규모 프로젝트에 적합합니다.
    • 일정한 사용 한도가 있으며, 이를 초과할 경우 추가 비용이 발생할 수 있습니다.
  2. Blaze Plan (유료 플랜):
    • 사용량에 따라 비용이 청구되는 유연한 플랜입니다.
    • 대규모 애플리케이션 개발이나 복잡한 백엔드 요구 사항을 가진 프로젝트에 적합합니다.
    • Spark Plan에서 제공하는 모든 기능을 포함하며, 추가적인 리소스 및 기능을 사용할 수 있습니다.

Firebase 설정 및 설치

1. Firebase 프로젝트 생성

Firebase Console에 접속하여 로그인 후 프로젝트를 생성합니다.

create firebase project

프로젝트 이름, Google Analytics 사용 여부, 계정 선택하고 프로젝트를 생성합니다.

생성한 프로젝트에 사용하고자 하는 서비스들을 추가합니다. (해당 과정은 각 서비스를 소개할 때 다룹니다.)

2. Firebase CLI 설치

Firebase CLI 소개

Firebase CLI (Command Line Interface)는 Firebase 서비스를 관리하고 통합하기 위한 명령 도구로 다음 기능을 가지고 있습니다.

  1. 프로젝트 관리: Firebase 프로젝트를 생성하고, 구성합니다.
  2. 서비스 배포: Firebase 호스팅, Cloud Functions, Firestore 규칙 등 다양한 Firebase 서비스를 배포합니다.
  3. 테스트 및 디버깅: 로컬에서 Firebase 서비스를 테스트하고 디버깅합니다.
  4. 앱 구성 관리: Firebase 구성 파일(google-services.json 또는 GoogleService-Info.plist)을 관리합니다.
설치

npm을 통해 다음 명령어를 통해 설치합니다.

$ npm install -g firebase-tools

3. Firebase CLI와 Firebase 프로젝트와 연결

로그인을 통해 Firebase CLI와 Firebase 프로젝트를 연결합니다.

$ firebase login

(필수 아님) 4. Firebase Project 초기화

만약 Console에서 Firebase Project의 서비스를 추가 했다면

다음 명령어를 통해 Firebase 프로젝트를 초기화하며 해당 서비스들을 연결할 수 있습니다.

$ firebase init

Flutter 프로젝트 설정

1. flutter 프로젝트 생성

본 예제에서는 (_7_firebase) 로 생성합니다.

flutter create _7_firebase

2. flutterfire-cli 활성화

다음 명령어를 통해 flutterfire-cli를 활성화 시킴니다.

$ dart pub global activate flutterfire_cli

3. flutter project 설정

flutter 프로젝트의 루트 경로에서 다음 명령어를 실행하여 flutter 프로젝트와 firebase 프로젝트를 연결합니다.

$ flutterfire configure --project=devitworld-tutorial

설정시, 사용할 platform들을 선택합니다.

select platform

자동으로 platform app마다 Firebase에 등록되고,

lib/firebase_options.dart configuration file이 프로젝트에 생성됩니다.

해당 파일은 연결 정보 등이 포함되므로 .gitignore에 포함시켜서 배포되지 않도록 설정하는 것이 좋습니다.

.gitignore

# firebase connection info
**/firebase_options.dart

4. firebase_core 패키지를 설치

다음 명령어를 통해 firebase_core 패키지를 설치합니다.

$ flutter pub add firebase_core

5. Firebase 프로젝트 확인

이렇게 flutter app을 등록하면 firebase project에 들어가면 다음과 같이 등록한 App들이 표시됩니다.

check registered apps

이렇게 하면 초기 설정은 끝이 납니다.

다음 포스팅에서 각 서비스들을 사용하는 방법에 대해 알아보겠습니다.

참고 링크

Leave a Comment