본문 바로가기
프로그래밍/App 개발

[android] 구글 로그인 연동 (firebase 사용)

by 엽기토기 2020. 8. 6.
반응형

1. fireabase 프로젝트 만들기

https://firebase.google.com/?hl=ko

 

콘솔로 이동 클릭

 

클릭

 

프로젝트 이름을 입력하고 쭉 계속 클릭

 

이렇게 뜨면 완료

 

+앱 추가 클릭

 

안드로이드 클릭

 

안드로이드 스튜디오에서 만든 프로젝트 패키지명을 넣고 앱 등록 클릭

 

google-services.json 파일을 다운로드 하고, 안드로이드 스튜디오에서 프로젝트 범위로 전환 후 앱 단위 폴더에 붙여넣고 다음 클릭

 

 

gradle에 추가

 

이 단계 건너뛰기

 

홈으로 나와서 왼쪽 메뉴에 있는 개발-Authentication 클릭

 

로그인 방법 - Google 클릭

 

사용설정으로 바꾸고 이메일 기입 후 저장

 


2. 앱 연결

 

firebase 구글 문서를 바탕으로 진행 (https://firebase.google.com/docs/auth/android/google-signin?hl=ko)


app 수준 gradle의 dependencies에 추가

implementation 'com.google.firebase:firebase-auth:19.1.0'
implementation 'com.google.android.gms:play-services-auth:17.0.0'

AndroidManifast.xml 상단에 추가

    <uses-permission android:name="android.permission.INTERNET"/>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.google.android.gms.common.SignInButton
        android:id="@+id/SignIn_Button"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="284dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

 

MainActivity.java

https://github.com/Jinyeob/MyGoogleLogin/blob/master/app/src/main/java/com/jinyeob/mylogin/MainActivity.java

 

Jinyeob/MyLogin-Google

Android - login with google using firebase Auth. Contribute to Jinyeob/MyLogin-Google development by creating an account on GitHub.

github.com


차례대로 코드를 기입해준다

그리고 sync하고 빌드하면...

땡~ 안됨

자 여기서 거의 5시간은 삽질했다.

 


로그에 나온 에러를 구글링해봤는데

역시 ㅋㅋㅋ

https://stackoverflow.com/questions/47437678/why-do-i-get-com-google-android-gms-common-api-apiexception-10

 

Why do I get com.google.android.gms.common.api.ApiException: 10:?

private void handleSignInResult(Task completedTask) { try { GoogleSignInAccount account = completedTask.getResult(ApiException.class); //exception is here ...

stackoverflow.com

SHA-1 key 라는 녀석 때문에 접속이 안된듯 하다.

똑같이 따라해준다.

오른쪽에 Gradle 탭에서 signing Report에 들어가서 SHA1 키를 복사한다.

 

콘솔로 이동.

https://console.developers.google.com/apis/credentials

 

프로젝트를 선택한다.

+ 사용자 인증 정보 만들기 - OAuth 클라이언트ID

 

아까 복사한 SHA-1 을 서명 인증서 지문에 붙여넣고, 패키지 이름도 기입한 후 생성

 

firebase 프로젝트 설정으로 이동

디지털 지문 추가 - 인증서 지문에 SHA-1 을 붙여넣고 저장

 

google-services.json 파일을 다시 다운로드하여

처음에 넣었던 파일을 지우고 넣어준다.

 


자.. 앱을 빌드해보자 !!

쫘라란~~

Authentication에서 이렇게 뜨면 성공한 것!!!


첫 화면을 이걸로 하고 signIn이 완료 되었을때 인텐트를 넘어가게 하면된다.

끝!!

반응형