이 글은 Firebase Authentication - Google Login 시 발생할 수 있는 에러를 해결하면서 마주칠 수 있는 사안에 대해 기술한 글입니다.
아래 그림은 Firebase Authentication SignIn 관련 코드를 추가했을 때 나오는 화면이며, SignIn 시 에러 코드를 발생시키며, 더 이상 진행되지 않을 때입니다.
UX 에서 딱히 어떤 에러 상황을 보여주지 않기 때문에, (로그인에 실패하였습니다! 팝업같은) 코드가 제대로 들어간 것인지 혹은 서버의 문제인 것인지 처음 닥쳤을 때는 조금 당황할 수 밖에 없습니다.
참고로 출처는 구글 코드랩 (https://firebase.google.com/codelabs/firebase-android?hl=ko#5) 입니다.
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 |