마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

firebase 구글 로그인 연동 질문

0 추천

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();
                        }
                    }
                });
    }

 

루비 (1,040 포인트) 님이 2019년 5월 30일 질문

1개의 답변

0 추천
로그캣보시고 인터넷에 오류내용 검색해보심이
익명사용자 님이 2019년 5월 30일 답변
...