본문 바로가기
앱 비지니스/서버·데이터베이스

[파이어베이스] 구글 로그인 및 인증 오류 해결 방법

by 3C Retsam 2021. 7. 5.

안드로이드 구글 로그인 튕김, 먹통 해결 방법

파이어베이스로 이것 저것 구현해보다가 안드로이드 스튜디오 가상 디바이스에서는 작동하는것이 내 모바일 폰에서는 작동을 안하는 경우가 있습니다.(로그인 부분에서 먹통이 되거나 앱 종료가 됨)  대부분은 함수처리 오류거나 서버 오류겠거니 하고 기능별로 뜯어서 확인 하다 보면 파이어베이스 관련 인증 문제일 때가 있습니다. 이 글에서는 파이어베이스로 구글 로그인이나 인증부분이 오류가 날때의 해결방법을 적어 봅니다.

구글 인증관련 API는 보안을 위해 반드시 키를 받아서 사용 하여야 합니다. 인증서 문제는 대략
1.릴리즈 버전의 인증서 누락
2.앱의 인증서 변경
3.구글 클라우드 플랫폼 API 인증서 누락
정도가 됩니다.

 

1.릴리즈 버전의 인증서 누락

안드로이드 앱의 인증서는 디버그 버전과 릴리즈 버전이 따로 있습니다. 파이어베이스에 디버그 버전의 인증서만 있고 릴리즈 버전의 인증서를 등록하지 않았을 때, 가상 디바이스의 디버그 버전은 작동을 잘 하지만 릴리즈 버전은 작동을 하지 못합니다. 파이어베이스 프로젝트 개요 옆의 설정 버튼을 누르고 프로젝트 설정을 보면 등록된 앱과 인증서를 볼 수 있습니다.

 

현재 테스트 앱의 디버그 및 릴리즈 버전의 인증서가 없습니다. 인증서를 간단하게 추가하는 방법입니다.


1-1. 디버그 버전의 인증서

안드로이드 스튜디오에서 오른쪽의 그래들을 누르고 signingReport를 더블 클릭하여 실행 하여 줍니다.

 

그러면 자동으로 SHA키를 보여 주는데 이게 바로 디버그 버전의 인증서입니다. 이 값을 파이어베이스 프로젝트에 추가하여 주면 디버그 인증서가 등록이 됩니다.

 

1-2. 릴리즈 버전의 인증서

터미널을 사용하여 간단하게 릴리즈 버전의 인증서 보는 방법입니다. 아래쪽 터미널을 열어줍니다.

 

터미널에 keytool -list -v -keystore "드라이브명:\폴더\키이름.jks" 를 입력하여 줍니다.
.jks파일은 앱을 빌드 할 때 생성 하였던 키입니다. 키의 위치에 맞게 키툴을 입력하여 주면됩니다.

 

입력을 하면 키스토어 비밀번호를 입력하라는 창이 뜹니다. 빌드 할 때 만들었던 키에 설정했던 비밀번호를 입력하여 주면됩니다. 그러면 터미널에 릴리즈 버전의 SHA 인증서가 나옵니다. 이 정보를 파이어베이스에 등록하여 주면 릴리즈 버전의 인증서가 등록이 되는것입니다.

 

2.앱의 인증서 변경

빌드 할 때 인증서를 새로 만들거나 파이어베이스에 등록된 인증서와는 다른 인증서를 사용하면 인증서가 맞지 않아 오류가 발생합니다. 위의 방법으로 인증서가 맞는지 확인하고 안 맞다면 변경이나 추가를 해주시면 됩니다.

 

3.구글 클라우드 플랫폼 API 인증서 누락

프로젝트를 다시 만들거나 파이어베이스 설정을 잘못하거나 프로젝트 이름 변경등을 하거나 하면 생기는 오류입니다. 파이어베이스에 등록된 인증서는 파이어베이스에서 사용하여 인증을 하는것이 아니라 구글 클라우드 플랫폼에 값을 전달하여 인증을 관리합니다. 파이어베이스에는 인증서가 잘 등록이 되어 있으나 구글 클라우드 플랫폼에서 인증서가 맞지 않으면 오류가 발생 됩니다. 구글 로그인을 한 뒤 https://console.cloud.google.com/ 로 접속하여 API개요로 이동하여 줍니다.

왼쪽 메뉴의 사용자 인증 정보를 확인하여 API키와 클라이언트 ID가 제대로 되어있는지 확인하시면 됩니다. 앱 이름은 보이는데 키가 제대로 되어 있지 않다면 값을 삭제 하고 파이어베이스에 인증서를 재등록 하여 재설정하여 줍니다. (이 때 다른 멀쩡한 키를 지우지 않도록 주의 하여야 합니다.)

이상 파이어베이스 구글 로그인, 인증 관련오류 해결 방법이었습니다.

댓글