안드로이드 앱 개발시에 firebase 파이어베이스와 연결하기

Firebase 란

2011년 파이어베이스 사가 개발하고 2014년 구글에 인수된 모바일 APP/WEB 애플리케이션 개발 플랫폼이다

  • Firebase Site
  • Firebase Github

Firebase 대표기능

  • 인증
    세션처리, 보안처리, 비밀번호 찾기, 아이디 찾기, 비밀번호 바꾸기, 이메일 인증 등
  • 데이터베이스 (NoSQL)
    Document 형식의 NoSQL 데이터베이스를 제공해준다
    Real Time Stream Protocol 방식의 데이터베이스를 지원한다
  • 스토리지
  • 원격 구성
    원격으로 앱의 환경 상태를 구성할 수 있다. 앱의 배경화면 테마나 폰트 변경
    업데이트창 알림창 띄우기
  • 푸시 알람
  • 분석기능
    Firebase Analytics 를 제공해준다

Firebase 단점

  • 응답속도가 종종 느려진다
    이건 뭐 아주아주 심각한 단점이다
    파일럿 앱이나 소규모 앱이야 괜찮지만 사용자가 많은 서비스는 응답지연에 대해서 심각하게 고려해야 한다
  • NoSQL 설계가 어렵다
    RDB 에 익숙한 개발자들이 NoSQL 데이터베이스를 얼마나 잘 사용할 수 있을까
    AWS DynamoDB 도 뭣모르고 썼다가 눈물을 흘린다

Firebase 세팅하기

  1. Firebase 가입
  2. Firebase 콘솔 로그인
  3. Firebase 프로젝트 만들기
  • 프로젝트 이름 등록
  • 구글 애널리틱스 설정 여부 선택 (선택사항)
  1. Firebase 프로젝트에 앱 추가하기
  • iOS, Android, Web 을 선택해서 추가합니다

  • 패키지이름 등록 (안드로이드 개발시에 설정하는 com.skyksit.firebase 같은 패키지명)

    1. 앱 닉네임 (선택사항) 등록
    2. 디버그 서명 인증서 SHA-1 (선택사항) 등록
  • APP 에 Firebase Android 구성파일 추가
    google-services.json 파일을 다운 받아서 안드로이드 앱 root 에 파일을 넣는다

  • APP 에서 Firebase 제품을 사용할 수 있도록 google-services 플러그인을 gradle 파일에 추가

    build.gradle(project) 에는

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    buildscript {
    repositories {
    // Check that you have the following line (if not, add it):
    google() // Google's Maven repository
    }
    dependencies {
    // ...
    // Add the following line:
    classpath 'com.google.gms:google-services:4.3.4' // Google Services plugin
    }
    }
    allprojects {
    // ...
    repositories {
    // Check that you have the following line (if not, add it):
    google() // Google's Maven repository
    // ...
    }
    }

    build.gradle(app) 에는

    1
    2
    3
    4
    plugins {
    //...
    id 'com.google.gms.google-services'
    }
  • APP 에 Firebase SDK 추가
    build.gradle(app)

    1
    2
    implementation platform('com.google.firebase:firebase-bom:26.1.1')
    implementation 'com.google.firebase:firebase-analytics-ktx'

Firebase 인증 연결하기

익명인증 추가하기

Firebase 익명인증 예제 를 기준으로 안드로이드 앱에 익명인증을 추가한다

앱에 설정하기

  • APP 에 Firebase Android BoM 을 사용하여 Firebase 인증 Android 라이브러리의 종속 항목을 선언한다
    build.gradle(app)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:26.1.1')
    // firebase analytics kotlin
    implementation 'com.google.firebase:firebase-analytics-ktx'
    // Declare the dependency for the Firebase Authentication library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-auth-ktx'
    }
  • Firebase console 에서 익명 인증을 사용으로 설정한다
    Firebase Console