안드로이드 앱 개발시에 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 세팅하기
- Firebase 가입
- Firebase 콘솔 로그인
- Firebase 프로젝트 만들기
- 프로젝트 이름 등록
- 구글 애널리틱스 설정 여부 선택 (선택사항)
- Firebase 프로젝트에 앱 추가하기
iOS, Android, Web 을 선택해서 추가합니다
패키지이름 등록 (안드로이드 개발시에 설정하는 com.skyksit.firebase 같은 패키지명)
- 앱 닉네임 (선택사항) 등록
- 디버그 서명 인증서 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
19buildscript {
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
4plugins {
//...
id 'com.google.gms.google-services'
}APP 에 Firebase SDK 추가
build.gradle(app)1
2implementation 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
9dependencies {
// 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 에서 익명 인증을 사용으로 설정한다