본문 바로가기

Android

Firebase를 이용한 메일/비밀번호 인증 방식 예제

구글에서 인수한 Firebase에서는 클라우드 메시지를 보내는 것 뿐만 아니라 인증, DB, 스토리지 등등 앱 개발에 필요한 꽤 많은 부가적인 기능들을 제공하고 있습니다. 그것도 안드로이드 뿐만 아니라 iOS와 웹에 대해서도 지원을 하고 있으며 특히 아직 규모가 크지 않은 경우라면 비용 부담없이 무료로 사용할 수 있으니 꽤 매력적이라고 생각합니다.


사용자들은 그런 기능들을 사용하면서 자신만의 비즈니스 로직에 전념할 수 있고, 또 구글 입장에서도 구글의 생태계 안으로 끌어당길 수 있으니 서로 이익이라고 생각합니다.


그래서 앞으로 Firebase에서 제공하는 기능들에 대해서 살펴보려고 합니다.


첫번째는 인증에 대해서인데, Firebase에서 제공하는 인증 방법은

    • 이메일/비밀번호
    • Google 연동
    • Facebook 연동
    • Twitter 연동
    • GitHub 연동
    • 익명

등 총 6개의 방법이 있으며 구글은 그 모든 방법을 하나의 안드로이드 샘플 앱으로 제공하고 있습니다.


이제 그 프로젝트를 다운 받아서 빌드하는 방법과 가장 기본적인 비밀번호 연동 방법으로 회원 가입하는 과정을 보도록 하겠습니다.



1. 프로젝트 다운로드


Firebase의 샘플 (https://firebase.google.com/docs/samples/?hl=ko) 에 보면 제공하는 기능들의 플랫폼별 샘플을 볼 수 있습니다. 이 중 모든 안드로이드 샘플은 https://github.com/firebase/quickstart-android 에 있습니다.


여기에 있는 저장소 링크를 가지고 git으로 소스를 다운로드 하면 됩니다.


git clone https://github.com/firebase/quickstart-android.git


인증 샘플은 auth 폴더에 있으니 안드로이드 스튜디오에서 File > Open 으로 해당 프로젝트를 불러 옵니다.



이제 빌드를 해보면 google-services.json 이 없다는 에러가 하나 발생합니다.



이 google-services.json 파일은 안드로이드 프로젝트와 Firebase 프로젝트 사이의 연결고리 역할을 합니다. 즉, Firebase의 기능들을 사용하고 싶으면 Firebase console을 통해 안드로이드 프로젝트를 추가해야 하고 그 과정에서 생성되는 google-services.json 파일을 안드로이드 프로젝트에 추가해야 합니다.


안드로이드 프로젝트를 Firebase 프로젝트에 추가할 때 키가 되는 값은 안드로이드 프로젝트의 application id 값 (앱 수준 build.gradle의 applicationId) 이고 구글 제공 Auth 앱의 applicationId 값은 com.google.firebase.quickstart.auth 이라는 것을 확인할 수 있습니다.




2. Firebase 프로젝트 생성


구글의 Firebase console (https://console.firebase.google.com/?hl=ko) 에서 새 프로젝트를 생성하거나 혹은 이미 있다면 그 프로젝트에 앱을 추가해도 무방합니다.


여기서는 Firebase의 기능들을 배워보는 의미로 Firebase Learning으로 프로젝트 이름을 정하고 새로 생성했습니다.




3. 안드로이드 앱에 Firebase 추가


Firebase 프로젝트가 생성되면 안드로이드 앱에 Firebase 추가 버튼을 눌러 진행합니다.



안드로이드 앱에 Firebase를 추가하는 과정과 그 과정을 통해 받은 google-services.json 파일을 안드로이드 프로젝트에 추가하는 것은 FCM을 이용해 안드로이드 앱으로 메시지 전송 (http://zeany.net/26) 에서 이미 자세히 살펴본 적이 있으니 앞에서 살펴본 application id (com.google.firebase.quickstart.auth) 를 입력하는 것만 제외하고 생략합니다.



이후 Firebase의 Auth 기능, 그 중 password 인증 기능을 사용하기 위해 다음처럼 Authentication > 로그인 방법 > 이메일/비밀번호 옵션을 On으로 설정 후 저장합니다.



google-services.json 파일을 추가한 후에는 안드로이드 Auth 앱이 정상적으로 빌드가 될 것입니다.



3. 회원 가입


이제 안드로이드 앱을 통해 메일/비밀번호 인증 방식을 통해 회원 가입을 해보도록 하겠습니다.


앱을 실행하면 Firebase에서 제공하는 모든 인증 방식을 선택할 수 있는 화면이 보입니다. 여기서 EmailPasswordActivity를 선택합니다.



원하는 Email과 Password를 입력 후 CREATE ACCOUNT 버튼을 클릭합니다. (보통 이렇게 회원 가입을 하지는 않지만, 이것은 샘플이니 UX는 추후 원하는 대로 변경하면 될 듯 합니다.)



회원 가입 후 Firebase console에서 보면 회원 가입이 되어 있고 그에 따른 정보가 보이는 것을 확인할 수 있습니다.



이상으로 Firebase의 메일/비밀번호 인증 방식에 대한 예제를 실행해 봤습니다.