[Project] Android Emulator DB연동, OAuth Kakao&Google Login 근데 이제 Firebase를 곁들인

2024. 10. 24. 18:31·Project

'경기청년 갭이어' 를 진행하면서
ReactNative (Expo) + FireBase (DB) 로 간단하게 안드로이드 환경에서
gptAPI model 연동하는 어플리케이션을 만들었는데
아쉽게도 배포까지는 못하고 프로젝트를 마무리했음. 배포할만큼의 기능까진 없지만..
그래도 이번에 한 프로젝트가 지금까지 중 제일 열심히했던것 같아서 재밌었다!
처음엔 주변에서 fireBase 쓰면 아 좋다~ 아 편하다~
하길래 한번 써봤는데 처음 써봐서 어리버리 하느라 엄청 삽질했음..

미래의 나를 위해 자세히 기록해둡시다


우선 firebase 접속해주고, 구글로그인 해줍니다

Firebase | Google's Mobile and Web App Development Platform

개발자가 사용자가 좋아할 만한 앱과 게임을 빌드하도록 지원하는 Google의 모바일 및 웹 앱 개발 플랫폼인 Firebase에 대해 알아보세요.

firebase.google.com

Firebase 초기화면

시작하기 누르면 콘솔창으로 들어오는데 

프로젝트 만들기

본인이 진행할 프로젝트를 생성해줍니다
프로젝트 안으로 들어와서 앱 추가 버튼을 누르면

ios, android, web ,unity, flutter

이렇게 나오는데 여기서 나는 Android 앱 만들거니까 android 랑 Web 두 개 각각 만들어줍니다
먼저 Web부터 보면

firebase - Web 추가

이름 등록해주고 확인 후
프로젝트 설정 / 일반 / 내 앱 으로 내려보면

이렇게 방금만든 web 의 SDK 설정 창이 나온다
npm install firebase 하고
firebaseConfig = 여기나오는 모든 키값들이 유용하게 쓰이니 프로젝트파일에 저장해둡시다

//.env

API_BASE_URL = https://api.openai.com/v1
OPENAI_API_KEY = //

GOOGLE_CLIENT_ID = //

KAKAO_API_KEY = //

FIREBASE_API_KEY = //
FIREBASE_AUTH_DOMAIN = //
FIREBASE_PROJECT_ID = //
FIREBASE_STORAGE_BUCKET = //
FIREBASE_MESSAGING_SENDER_ID = //
FIREBASE_APP_ID = //
FIREBASE_MEASUREMENT_ID = //

나는 이런식으로 프로젝트 파일안에 env 파일에 키값들을 모두 저장해두는편이라 그대로 가져오면 된다

.env

* 삽질 포인트 (1) :  다른 firebase 설정하는 영상이나 블로그같은거 보면 web SDK 정보에 measurementId 가 나오는데 나는 없었음 -> measurementId는 초기 firebase 프로젝트 만들때 google Analytics를 활성화 하면 나오는 키임 -> 아 망했네 다시 만들어야 하나? -> 는 아니고 프로젝트 옆에보면 애널리틱스 탭 있는데 여기서 사용한다고 눌러주면 되더라

firebase - android 추가

똑같이 안드로이드 앱도 만들어 주자
여기서 SHA-1 키값을 넣어주라고 되어있는데 일단 비워두고 다음으로 넘어가서

android - google-services.json

2번 설명대로 google-services.json 을 프로젝트 파일에 넣어주자
나는 expo 프로젝트 안에서 했기때문에

project - google-services.json

이런식의 파일구성이라 넣어줬음
그리고 가장 삽질했었던 SHA-1 키 이놈을 해치워보면
원래 expo 환경에서의 정석은 android 경로로 이동해서 ( ./android/ ~ )
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

를 쳐서 expo 내의 android emulator의 sha-1 키 값을 뽑아내는건데 내가 window에서 개발해서 그런가 아무리 이방법 저방법 해도 안나왔음, expo 공식문서도 없어진건지 못찾겠고.. 
* 삽질포인트 (2) : 그래서 웹서핑 후에 안드로이드 스튜디오에서 gradle 선택해서 singingReport 하고 sha-1 키를 뽑는 방법을 썼었는데, 이렇게 하니까 에뮬레이터 인식이 안됨, 난 이 sha-1 키가 맞는줄알고 계속 개발했는데ㅠ
나중에 가서 오류원인 찾느라 고생좀 했음, 나중에 맥북에서 처음부터 해보니까 바로 되더라 개발할때는 맥으로 하자

(mac 환경) ./android 에서 명령어 실행
android - sha

위에서 힘들게 찾아온 sha-1 값을 저기 아래에 넣어주면 android 세팅도 끝
다음은 Google 로그인인데
firebase가 재밌는게 사용하고싶은 제품만 골라먹는 느낌이라 우선 이렇게 4개만 사용했다
storage와 firestore Database 는 firebase의 핵심인 noSQL DB 느낌이고 (우선은 테스트모드로 활성화 하면 된다)
Authentication 은 이메일이나 비밀번호같은 기본 인증, google이나 github같은 OAuth 할때 사용되고
Analytics Dashboard는 google Analytics 활성화하면 자동으로 켜짐, db 사용자 활동이나 세션 수 이런거 분석해줌

4개 모두 활성화 되어있어야 함

 

로그인 방법

Authentication 가서 로그인 방법 누르고 Google 눌러주면

google 로그인 구성화면

이렇게 나오는데 바로 저장 누르면 google 클라우드 플랫폼에서 자동으로 생성된다

Google 클라우드 플랫폼

로그인 Google 클라우드 플랫폼으로 이동

accounts.google.com

들어가서 확인해보면 (created by Firebase) 하고 자동으로 키가 생성되어있음

클라이언트 ID는 로그인 방법에서 Google 사용으로 스위치 전환 후 저장하면 자동으로 생성됨

google API - 자동으로 클라이언트 ID 생성

 

firebase - 자동으로 클라이언트 ID 연동

웹 애플리케이션의 클라이언트 ID 를 복사하고 .env 파일에 적어서 연동해줬다

google-service.json 교체

아까 Android 앱 생성할때 했던 google-service.json 정보가 변경되었기 때문에 다시 다운받아서 최신화 해주면된다
이 창은 처음으로 구글 로그인 연동을 하면 이 창이 뜨는데 이 창이 안떠도 서운해하지말고 똑같이 다운받아서 하면 된다
이렇게 하면 구글 로그인도 완료
다음엔 카카오 로그인인데 카카오 로그인은 구글보다 훨씬 쉬움

카카오계정

accounts.kakao.com

카카오 개발자 사이트에 들어가서 내 프로젝트(애플리케이션) 을 만들어주고

앱설정 > 플랫폼

플랫폼 탭으로 이동해서 Android 환경을 등록해준다
패키지명은 Firebase창에서 (프로젝트설정/내 앱) 에 가보면 android 앱을 만들어뒀던 탭에서 (com.~.~)으로 설정해둔값이고

마켓URL 은 임의로 아무거나 정해둬도 되고 없어도 된다
키 해시값은 sha-1 키값 가져올때랑 똑같이 프로젝트 상에서 android 경로로 이동해서 ( ./android/ ~ ) 뽑아오자
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -storepass android -keypass android | openssl sha1 -binary | openssl base64
* 삽질포인트 (3) : 역시나 window 환경에서는 키해시값 가져오는게 바로 안됐다, 명령에 openssl을 사용해서 그런듯한데
해결방법은 openssl 을 따로 설치해주고 환경변수 설정 해주면 된다고 한다
(구글에 웹서핑 해보면 바로 나온다)

키 해시값

나온 키 해시값을 카카오개발자 사이트의 android 앱 설정 값에 넣어줍시다
그리고 앱 키 탭으로 가서

앱 키

네이티브 앱 키 값을 가져와서 요청하면 되는데
나는 google api 키랑 똑같이 .env 파일에 넣어두었음

로그인 초기화면
google 로그인 누르기
firebase에서 넘어온 google 로그인 토큰값

끝!


자바 버전 확인하고 -> 안드로이드 스튜디오 깔고 -> 안드로이드 에뮬레이터 다운받고 -> 환경변수 설정하고 -> expo 프로젝트 빌드 잘되는지 확인하고 -> ~
같은 초기 세팅 단계는 생략했는데 이건 다른 블로거분들이 너무 잘 정리해둬서 굳이 정리 안해도 될듯
확실히 Firebase가 사용하는 법만 알면 엄청 편한것같은데 처음이라 애좀 먹었다
window랑 mac이랑 환경따라 다른것도 있고, expo 너무 느리고 노드 버전도 다 다르고 오류가 너무 많이 뜬다; 안되는게 많아서 좀 섭섭했는데 어찌저찌 좋은 선생님 만나서 잘 배웠고 혼자 삽질한게 도움이 좀 많이 된듯 하다
고생해서 얻은건 잊혀지지 않으니 좋은 공부가 됐다

'Project' 카테고리의 다른 글
  • [Project] Gabia에서 구매한 도메인을 Vercel과 연결해보자
  • [Project] 멋쟁이사자처럼 아기사자 모집 사이트 Frontend
  • [Project] 개발시 유용한 사이트 모음집
  • [Project] 유튜브 댓글 바로보기 크롬확장프로그램
너굴먹
너굴먹
해랑사 을신당는 나
  • 너굴먹
    햄스터가 갱스터가 될때까지
    너굴먹
  • 전체
    오늘
    어제
    • 분류 전체보기 (36)
      • Dev (17)
      • Computer (6)
      • Project (7)
      • CodingTest (2)
      • 일상 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    python
    vercel
    플립플롭
    필기
    10진수
    오답노트
    2진수
    Lightsail
    roboflow
    RS래치
    파이썬
    경기도갭이어프로그램
    cbt
    trunk-based
    GithubAction
    아이패드 m4
    코딩테스트
    c라이브러리
    actions secrets and variables
    AWS
    python #max #min #최댓값 #최솟값
    R-S래치
    래치
    숫 자료형
    YOLOv5
    정보처리기사
    실수 변환
    정처기 필기
    숫자 자료형
    소수 변환
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
너굴먹
[Project] Android Emulator DB연동, OAuth Kakao&Google Login 근데 이제 Firebase를 곁들인
상단으로

티스토리툴바