티스토리 뷰

반응형
SMALL

파이어 베이스 Authentication 탭에서 구글 로그인 사용 설정으로 바꿔 준다.

 

이때 필요한게 프로젝트 SHA1 인증 키가 필요.

 

우선 릴리즈 버전일 때는 또 다른 작업이 필요하지만 우선 디버딩앱 일 때 예를 들어 본다.

 

프로젝트 설정에서 디지털 지문 추가 한다.
디지털 지문은 스튜디오 상에서 오른쪽에 있는 Gradle 에서 signingReport 를 클릭하면 아래 지문이 나옴. ( Debug 용 )

 

우선 참고 : https://firebase.google.com/docs/auth/android/google-signin?authuser=0

 

Android에서 Google 로그인을 사용하여 인증하기  |  Firebase

Google 로그인을 앱에 통합하여 사용자가 Google 계정으로 Firebase 인증을 받도록 설정할 수 있습니다. 시작하기 전에 Android 프로젝트에 Firebase를 추가하지 않았다면 먼저 추가합니다. 프로젝트 수준 build.gradle 파일의 buildscript 및 allprojects 섹션에 Google의 Maven 저장소가 포함되어야 합니다. 다음과 같이 모듈(앱 수준) Gradle 파일(일반적으로 app/build.gradle)에 Fi

firebase.google.com

 

반응형

 

필요 gradle 파일

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

 

버튼 클릭 시 호출 

val mGoogleSignInClient = GoogleSignIn.getClient(this,
                    GoogleSignInOptions.Builder(
                        GoogleSignInOptions.DEFAULT_SIGN_IN)
                        .requestIdToken(getString(R.string.default_web_client_id))
                        .requestEmail()
                        .build()
                )
startActivityForResult(mGoogleSignInClient.signInIntent, 100)

 

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == 100) {
            val task: Task<GoogleSignInAccount> = GoogleSignIn.getSignedInAccountFromIntent(data)
            try {
                val account: GoogleSignInAccount = task.getResult(ApiException::class.java)!!
                firebaseAuthWithGoogle(account)
            } catch (e: ApiException) {
                Toast.makeText(this, "Google sign in failed:(", Toast.LENGTH_LONG).show()
                Log.e(TAG, "Error > $e")
            }
        }
    }

 

private fun firebaseAuthWithGoogle(acct: GoogleSignInAccount) {
        val credential = GoogleAuthProvider.getCredential(acct.idToken, null)
        FirebaseAuth
            .getInstance()
            .signInWithCredential(credential)
            .addOnCompleteListener {
                if (it.isSuccessful) {
                    FirebaseInstanceId
                        .getInstance()
                        .instanceId
                        .addOnSuccessListener { token ->
                            // 토큰 가져오기.
                            val toKen = token.token
                        }
                    goToMain(this)
                } else {
                    Toast.makeText(this, "Google sign in failed:(", Toast.LENGTH_LONG).show()
                }
            }
    }

 

로그아웃 시에는

val firebaseAuth by lazy { FirebaseAuth.getInstance() }

if (firebaseAuth.currentUser != null) {
	firebaseAuth.signOut()
}

 

 

일반 버튼으로 해도 되고 

구글에서 제공해 주는 버튼 으로 해도 되고 

<com.google.android.gms.common.SignInButton
    android:id="@+id/btn_googleSignIn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

</com.google.android.gms.common.SignInButton>

 

 

[ 참고 ] Release App SHA1 얻기

참고 : http://fabcoding.com/how-to-obtain-sha1-keys-for-debug-and-release-android-studio-mac/

 

How to obtain SHA1 Keys for debug and release - Android Studio [Mac] - Fabcoding

Debug Key Click on the Gradle tab on the right hand side of the …

fabcoding.com

 

앱 키스토어 발급

릴리즈 APK 만들수 있는 KeyStore 발급.

 

 

우선 구글 API 에 접속 

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

 

Google Cloud Platform

하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요.

accounts.google.com

 

사용자 인증 정보 만들기 클릭

사용자 인증 정보 들어가서 " 사용자 인증정보 만들기 " 클릭

 

인증서를 넣고 앱 패키지 를 적어 넣고 생성 누르면 끝

 

터미널에서

keytool -list -v -keystore <키스토어 저장되어 있는 곳 경로 와 키스토어이름 까지 > -alias <키 스토어 만들 때 alias>

 

아마 비밀번호도 한번 물어 볼거니까 기억 하고 있어야 함.

여기서 나온 SHA1 정보를 사용자 인증정보 만들기에 넣고 생성 하기.

 

그러면 바로 앱을 릴리즈로 말고 나서 테스트 하면 됨.

 

반응형
LIST

'Android > Firebase' 카테고리의 다른 글

[ Firebase #4 ] Firebase Storage  (0) 2020.04.17
[ Firebase #2 ] Authentication 이메일 인증  (0) 2020.04.09
[ Firebase #1 ] 파이어베이스 연결  (0) 2020.04.09
댓글