본문 바로가기
프로그래밍/Android

안드로이드 Firebase Auth / Realtime Databsae

by Daniel.kwak 2018. 12. 6.

Firebase Auth는 사용자 인증에 관한 좋은 솔루션이다. 

대부분의 앱에서는 사용자의 신원 정보를 필요로 한다. 사용자의 신원이 일단 확인되면, 사용자의 데이터를 클라우드에 저장할 수 있고 사용자의 모든 디바이스에서 사용자에게 맞춘 동일한 경험을 제공할 수 있기 때문이다. 


Firebase는 앱에서 인증에 필요한 SDK , 백엔드 , 인기 인증 업체에 대한 인증이 지원된다. 


또한 Firebase 인증을 통해 다른 Firebase 서비스와 연동이 가능하며 OAuth 2.0 같은 산업 표준을 활용하므로 맞춤 백엔드와 쉽게 통합할 수 있다.

1)오픈소스 형태로 제공하는 Firebase Auth UI를 삽입하거나

2)Google, Facebook , Github같은 인증업체의 sdk를 통해 인증을 구현한다. 


작동원리

사용자를 앱에 로그인시키려면 우선 사용자에게서 인증 정보를 받아와야 한다. 이 인증 정보는 E-mail 과 Password일수도 있고 인증업체를 통해 얻어온 OAuth토큰일수도 있다. 이 인증정보를 Firebase 인증 서버에 전송하면 적절한 응답을 받아서 클라이언트에서 처리할 수 있게 된다.


로그인이 정상적으로 이루어지면, 사용자의 기본 프로필 정보를 얻어올 수 있으며 다른 Firebase 서비스에 저장된 정보의 접근 권한도 얻을 수 있다. 




Firebase Realtime Database

NoSQL클라우드 데이터베이스에 데이터를 저장하고 실시간 동기화를 할 수 있다. 모든 클라이언트에서 데이터를 동기화 할 수 있고, 오프라인 상태에서도 접근이 가능하다. 데이터는 Json 형태로 저장되며 ,iOS , Android , Javascript로 하나의 서비스를 개발하면 Realtime Database를 통해 모든 클라이언트가 하나의 Realtime Database Instance를 공유하고 자동 업데이트로 최신 데이터를 수신한다. 


기본원리

Realtime Database로 클라이언트 측 코드에서 직접 데이터베이스에 접근하여 다기능 협업 어플리케이션을 개발할 수 있다. 데이터가 로컬에 유지되고, 오프라인 일 때도 실시간 데이터가 계속 발생하므로 최종 사용자에게 원활한 환경이 제공된다. 

또한 Realtime Database는 NoSQL데이터베이스로서 최적화 방식과 기능성이 관계성 데이터베이스와는 다르다. Realtime Database API는 오직 실행속도에 초점을 맞춰서 설계되었으므로 수백만 사용자가 원할하고 쾌적하게 사용할 수 있는 실시간 환경을 제공한다. 따라서 사용자의 데이터 엑세스 방법을 미리 계획하고 구조화 하는게 중요하다. 



실시간 데이터베이스의 데이터 구조화, 읽기 및 쓰기, 목록 다루기.

->금고 IoT앱에서 어떻게 데이터를 구조화 하고 어떤식으로 사용했는지가 중요