이 글은 Firebase Authentication - Google Login 시 발생할 수 있는 에러를 해결하면서 마주칠 수 있는 사안에 대해 기술한 글입니다.

아래 그림은 Firebase Authentication SignIn 관련 코드를 추가했을 때 나오는 화면이며, SignIn 시 에러 코드를 발생시키며, 더 이상 진행되지 않을 때입니다.

UX 에서 딱히 어떤 에러 상황을 보여주지 않기 때문에, (로그인에 실패하였습니다! 팝업같은) 코드가 제대로 들어간 것인지 혹은 서버의 문제인 것인지 처음 닥쳤을 때는 조금 당황할 수 밖에 없습니다.

참고로 출처는 구글 코드랩 (https://firebase.google.com/codelabs/firebase-android?hl=ko#5) 입니다.

Firebase SignInActivity

 

 

0. 문제의 원인

Android SHA-1 FingerPrint 부재

앱을 플레이스토어에 올리려고 할 때 필요한 '나의 시그니처(사인)' 이 없어서 입니다.

<이건 내가 만든 거야 그러니깐 나중에 업데이트할 때도 이 사인을 보고 내가 한 게 맞을 때 업데이트 하라고!> 얘기해주는 것이조

 

1. 이제 시작인데, ...

처음 앱을 만들 때에는 보통 이런 사인 없이도 테스트해볼 수 있습니다.

왜냐하면, <안드로이드 스튜디오> 에서 기본 값을 넣어주기 때문입니다.

 

이 때 사용하는 키스토어는 .android/debug.keystore 입니다.

MS윈도우와 Mac 의 기본 저장위치가 조금 다르니 아래 코드를 참고하세요. storepass, alias, keypass 는 동일합니다.

 

keytool -list -v -keystore c:\Users\<%mylogin%>.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
Alias name: androiddebugkey
Creation date: 2023. 3. XX.
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: C=US, O=Android, CN=Android Debug
Issuer: C=US, O=Android, CN=Android Debug
Serial number: 1
Valid from: Fri Mar XX 16:57:34 KST 2023 until: Sun Mar XX 16:57:34 KST 2053
Certificate fingerprints:
	 SHA1: 3F:EA:C9:19:DC:AD:3E:EE:3F:C1:2B:BB:71:B8:84:10:
	 SHA256: D4:5D:DB:FA:A2:61:05:AF:EF:66:B8:61:A4:4F:10:89
Signature algorithm name: SHA1withRSA (weak)
Subject Public Key Algorithm: 2048-bit RSA key
Version: 1

Warning:
The certificate uses the SHA1withRSA signature algorithm which is considered a security risk.

 

 

firebase console(https://console.firebase.google.com/) 에서 프로젝트를 선택한 뒤, 프로젝트 설정을 선택합니다.

그리고 설정 화면에서 맨 아래로 내려가면, 내 앱> 앱 추가 를 선택하여 패키지명과 FingerPrint 값(위 코드를 실행시켰을 때 나오는) 을 입력해 주면 됩니다.

 

 

 

 

2. 이 시점에서 키스토어를 만드시는 것도 ...

Android Studio > Build > Generate Signed Bundle / Apk > Next > 중간에 Create New 버튼을 누르시면 키스토어를 만드실 수 있습니다.

 

 

그리고, 만들어진 keystore 에서 나온 FingerPrint 값을 Firestore 에 등록해 놓고, 아래와 같이 build.gradle 파일에서 해당 signingConfig 를 debug 에서 사용하는 것도 나쁘지 않은 방법입니다.

실제로 저도 실서비스에서만 발생하는 버그를 찾기위해서 아래와 같은 방법을 종종 사용하곤 합니다.

 

    buildTypes {
        debug {
            //signingConfig signingConfigs.release
        }
        release {
            signingConfig signingConfigs.release
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    signingConfigs {
        release {
            storeFile rootProject.file('key.store')
            keyAlias 'key1234'
            keyPassword '123456'
            storePassword '123456'
        }
    }

 

3. 덧붙임

테스트 중이 "Code : 7" 에러가 나왔던 적이 있었던 것 같은데, 정확하지는 않지만, SignUp 이 제대로 되지 않아서 발생했던 것으로 기억합니다. 참고하시길~

 

'Android' 카테고리의 다른 글

Android targetSdkVersion=30, queryIntentActivities() 문제  (0) 2022.01.10
Gson - Android Proguard 문제  (0) 2020.11.12
Android Studio - Database Inspector  (0) 2020.11.04
Android AlertDialog Style 변경  (0) 2020.08.05
Android Custom Lint  (0) 2020.07.28