본문 바로가기
Android

Android(안드로이드) 구글 로그인 하기 소스편.

by 일용직 코딩노동자 2022. 8. 25.
728x90
반응형

기본셋팅을 안하신분들은

https://onedaycodeing.tistory.com/187

 

Android(안드로이드) 구글 로그인 하기 기본셋팅편.

우선 파이어베이스에 프로젝트를 등록해주세요. https://onedaycodeing.tistory.com/17 안드로이드 스튜디오 파이어베이스 연동 https://firebase.google.com/ 이사이트에 들어가시면 이런 그림을 보실 수 있습니.

onedaycodeing.tistory.com

해당 게시글을 보시고 와주세요!

 

build.gradle에서 의존성 추가해줍니다.

 

//구글로그인
implementation 'com.google.android.gms:play-services-auth:20.2.0'

 

전역변수 하나 만들어줍니다!

var mGoogleSignInClient : GoogleSignInClient? = null

 

onCreate에서

구글 로그인에 대한 인스턴스를 생성해줍니다.

val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
    .requestEmail()
    .build()
mGoogleSignInClient = GoogleSignIn.getClient(this, gso)

이제 버튼 하나 만들어주세요.

 

그 버튼 클릭이벤트에

 

fun googleLogin() {
    val signInIntent = mGoogleSignInClient!!.signInIntent
    googleLoginLauncher.launch(signInIntent)
}

이녀석을 호출해주세요.

 

var googleLoginLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
    if (result.resultCode == -1) {
        val data = result.data
        val task = GoogleSignIn.getSignedInAccountFromIntent(data)
        getGoogleInfo(task)
    }
}
fun getGoogleInfo(completedTask: Task<GoogleSignInAccount>) {
    try {
        val TAG = "구글 로그인 결과"
        val account = completedTask.getResult(ApiException::class.java)
        Log.d(TAG, account.id!!)
        Log.d(TAG, account.familyName!!)
        Log.d(TAG, account.givenName!!)
        Log.d(TAG, account.email!!)
    }
    catch (e: ApiException) {
        Log.w(TAG, "signInResult:failed code=" + e.statusCode)
    }
}

이렇게하시면 회원정보 얻는데까지 성공입니다.

728x90
반응형

댓글