2024. 5. 21. 01:36ㆍMobile Programming
사용 목적
교내 팀 프로젝트에서 앱의 회원가입, 로그인, 로그아웃 기능 구현을 맡았다. 이전에 웹 사이트에서 같은 기능을 만들 때는 세션과 쿠키, MySQL과 AWS EC2를 사용했었다. Json Web Token(JWT)이나 Firebase는 사용해보지 않았기 때문에 관련 블로그 글을 많이 찾아보았다. 사용하는 DB와 인증 방식에 따라 코드가 매우 달라질 것으로 예상되어, 우선 Firebase라는 데이터베이스부터 직접 사용해보기로 했다.
포스팅 스타일
공식 사이트의 가이드만으로 충분한 단계는 생략하고, 중요하거나 헷갈련던 부분 위주로만 정리하려고 한다.
SHA-1 디지털 지문
Firebase 콘솔에서 프로젝트 생성을 마친 후 안드로이드 아이콘을 눌러 앱 추가를 진행하였다. SHA-1 디지털 지문을 추가하는 부분이 생소했다. 가이드는 '안드로이드 앱에 대한 구글 로그인을 설정하려면 프로젝트 설정에서 각 앱에 대해 SHA-1 디지털 지문을 추가해야 한다.'고 안내한다. SHA-1을 얻는 방법은 여러가지인데, 나는 작업 중인 앱 프로젝트에서 Gradle > Execute Gradle Task > signingReport 실행을 통해 콘솔에서 인증서 값을 얻었다. 그대로 복사해서 입력해주면 된다.
google-services.json 파일 앱 프로젝트 폴더에 넣기
가이드대로 google-services.json을 다운받는다. 먼저, 안드로이드 스튜디오에서 Project 뷰로 전환한다. app 수준 루트 디렉토리에 다운 받은 파일을 붙여넣기 한다. Android 뷰에서 app에 파일을 복사하면 실제로 파일은 복사되지만, 파일 구조에서는 보이지 않으니 시간 낭비 하지 않도록 주의한다.
플러그인과 SDK 추가
Firebase SDK가 google-services.json 구성 값에 액세스할 수 있도록 하려면 Gradle plugin이 필요하다. 안드로이드 스튜디오에서 아래 플러그인과 SDK를 추가하고, Sync를 해야 한다.
- 프로젝트 수준의 build.gradle.kts 파일
plugins {
// ...
// Add the dependency for the Google services Gradle plugin
id("com.google.gms.google-services") version "4.4.1" apply false
}
- 모듈 수준의 build.gradle.kts 파일
plugins {
// ...
// Add the Google services Gradle plugin
id("com.google.gms.google-services")
}
dependencies {
// ...
// Import the Firebase BoM
implementation("com.google.firebase:firebase-bom:33.0.0")
// TODO: Add the dependencies for Firebase products you want to use
// When using the BoM, don't specify versions in Firebase dependencies
implementation("com.google.firebase:firebase-analytics:22.0.0")
// Add the dependencies for any other desired Firebase products
// https://firebase.google.com/docs/android/setup#available-libraries
// ...
}