Firebase 연동해서 구글계정으로 로그인하려고하는데 원래이 코드로 됐었는데 어느날부턴가 갑자기 안되네요
인증실패 Code : 1 으로 계속 빠지는데 왜그런건가요??
// 구글 로그인 버튼
private SignInButton Google_Login;
// 구글로그인 result 상수
private static final int RC_SIGN_IN = 1000;
// 파이어베이스 인증 객체 생성
private FirebaseAuth mAuth;
// 구글api클라이언트
private GoogleApiClient mGoogleApiClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Google 로그인을 앱에 통합
// GoogleSignInOptions 개체를 구성할 때 requestIdToken을 호출
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this, this)
.addApi(Auth.GOOGLE_SIGN_IN_API,gso)
.build();
mAuth = FirebaseAuth.getInstance();
Google_Login = findViewById(R.id.Google_Login);
Google_Login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent,RC_SIGN_IN);
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// 구글로그인 버튼 응답
if (requestCode == RC_SIGN_IN) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (result.isSuccess()) {
//구글 로그인 성공해서 파베에 인증 // 구글 로그인 성공
GoogleSignInAccount account = result.getSignInAccount();
firebaseAuthWithGoogle(account);
//로그인 성공하면 페이지이동
Intent intent = new Intent(getBaseContext(), Main2Activity.class);
startActivityForResult(intent, 1000);
}
else{
//구글 로그인 실패
Toast.makeText(MainActivity.this, "인증 실패 Code : 1", Toast.LENGTH_SHORT).show();
}
}
}
// 사용자가 정상적으로 로그인한 후에 GoogleSignInAccount 개체에서 ID 토큰을 가져와서
// Firebase 사용자 인증 정보로 교환하고 Firebase 사용자 인증 정보를 사용해 Firebase에 인증합니다.
private void firebaseAuthWithGoogle(GoogleSignInAccount acct){
AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(),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();
}else{
Toast.makeText(MainActivity.this, "인증 실패 Code : 2", Toast.LENGTH_SHORT).show();
}
}
});
}