Uing? Uing!!

[안드로이드 삽질기록] 구글 로그인 결과가 Status{statusCode=DEVELOPER_ERROR, resolution=null}일 때 본문

Android

[안드로이드 삽질기록] 구글 로그인 결과가 Status{statusCode=DEVELOPER_ERROR, resolution=null}일 때

Uing!! 2020. 7. 29. 01:11
반응형

사건의 발단

Firebase를 이해하고 SNS를 만들어 보겠답시고 아래 인프런 강의를 보는 중이었다.

 

하울의 안드로이드 인스타그램 클론 만들기 - 인프런

이 강좌를 통해서 인스타그램 앱을 만들 수 있습니다. 초급 모바일 앱 개발 프로그래밍 언어 Android Kotlin 모바일 앱 온라인 강의 안드로이드 강좌, 인스타그램 만들기 강좌, 하울

www.inflearn.com

실은 이 강의를 듣기 시작한 게 2020년 3월인데, 개강 후에 연구실 일로 정신이 없어서 잠시 내려놓았었다.

학기가 끝나고, 잠시 취업을 준비하고, 면접 결과를 기다리며 잠시 쉬다가 듣다 만 강의가 생각나 마저 듣기 시작했다.

예전에 강의를 따라가면서 github에 올려 두었던 중간 과정이 있어서, 그걸 clone한 뒤에 마저 작업을 하려고 했다.

 

삽질의 과정

그런데 문제가 생겼다.

예전엔 잘만 돌아가던 google login 버튼이 작동하질 않는 거다.

이유는 모르겠지만, 로그인 버튼을 누르고 내 계정을 클릭해도 다음 화면으로 넘어가지 않았다.

작성한 코드의 onActivityResult부분에서 로그인 결과를 받아오게 되어 있었는데, 아래는 그 코드이다.

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)

    // google login
    if(requestCode == GOOGLE_LOGIN_CODE){
        var result = Auth.GoogleSignInApi.getSignInResultFromIntent(data)
        if(result.isSuccess){
            var account = result.signInAccount
            firebaseAuthWithGoogle(account!!)
        }
    }
}

달리 문제가 없어 보였는데 잘 되지 않아서 로그를 찍어 보았다.

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
        
    // google login
    if(requestCode == GOOGLE_LOGIN_CODE){
    	var result = Auth.GoogleSignInApi.getSignInResultFromIntent(data)
        Log.e("RESULT", result.status.toString()) // 로그 출력부분
        if(result.isSuccess){
        var account = result.signInAccount
        firebaseAuthWithGoogle(account!!)
        }
    }
}

그랬더니 로그인 결과로

E/RESULT: Status{statusCode=DEVELOPER_ERROR, resolution=null}

이런 결과가 나오는 것을 확인할 수 있었다. 뭔지는 몰라도 DEVELOPER_ERROR라는 에러가 발생해서 제대로 된 로그인 결과값을 받아오지 못한 것으로 보였다.

 

삽질의 결과

에러 이름을 키워드로 구글링하고, google signin 구현 전반도 다시 확인해 보며 원인을 알아낼 수 있었다.

결론은 SHA1 인증이 다르게 되어 있어서였다. 왜 그게 변경되었는지는 사실 잘 모르겠지만...

인증키를 다시 발급받아서 Firebase에 등록함으로서 문제를 해결할 수 있었다.

 

인증키 발급 및 등록 절차는 이렇다.

 

1. Android Studio에서 SHA1 인증키 발급

먼저 Android Studio 우측에 Gradle이라는 버튼이 있다. 

 

Gradle -> (app) -> Tasks -> android -> signingReport를 더블클릭하여 Report를 출력한다.

 

하단 창에서 signingReport의 결과를 보면 SHA1: 뒤에 SHA1 인증키를 확인할 수 있다.

이 부분을 복사해서 Firebase 프로젝트에 등록하면 된다.

 

2. Firebase 프로젝트에서 SHA1 인증키 등록

Firebase의 프로젝트에 들어간 뒤 일반 설정에 들어가면 이렇게 인증키를 등록하는 부분이 있다.

 

'디지털 지문 추가'를 누르고 SHA-1 유형으로 해서, 1번에서 복사한 SHA1 인증키를 붙여넣으면 끝이다.

반응형
Comments