안드로이드 파이어베이스 Google 로그인
build.gradle의 dependencies에 firebase 라이브러리 종속 항목 선언해주기
implementation platform('com.google.firebase:firebase-bom:29.3.0')
implementation 'com.google.firebase:firebase-auth'
implementation 'com.google.android.gms:play-services-auth:20.1.0'
Firebase 인증
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken("R.string.server_client_id")
//serverClientId는 google-services.json 파일의 client_id 값이다
.requestEmail()
.build();
구글 계정 사용자임을 확인하는 코드
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mCallbackManager.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
try {
GoogleSignInAccount account = task.getResult(ApiException.class);
firebaseAuthWithGoogle(account.getIdToken());
} catch (ApiException e) {
}
}
}
파이어베이스에 구글 계정을 저장하는 코드
private void firebaseAuthWithGoogle(String idToken) {
AuthCredential credential = GoogleAuthProvider.getCredential(idToken, null);
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
Toast.makeText(MainActivity.this, "로그인 되었습니다.", Toast.LENGTH_SHORT).show();
finish();
Intent intent = new Intent(getApplicationContext(), MenuActivity.class);
startActivity(intent);
} else {
}
}
});
}
구글 로그인 성공시 FireBase Authentication에 추가된 모습이다.
구글 로그인 버튼
<com.google.android.gms.common.SignInButton
android:id="@+id/googleLoginButton"
android:layout_gravity="center"
android:layout_width="200dp"![]
android:layout_height="wrap_content"
android:layout_marginLeft="5dp" />
Author And Source
이 문제에 관하여(안드로이드 파이어베이스 Google 로그인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@eric2057/안드로이드-파이어베이스-Google-로그인저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)