Android 使用google登录-身份验证

Android 使用google登录-身份验证,android,google-signin,Android,Google Signin,我正在开发一个android应用程序,在这个应用程序中,用户可以选择通过注册该应用程序进行登录,也可以使用谷歌登录选项 使用表单登录工作正常。但是当用户登录google时,我会将用户重定向到注册屏幕,以便在我将用户登录到主屏幕之前获取更多信息。我唯一的问题是,当用户第一次登录谷歌时,用户会被重定向到第二个屏幕,在那里他/她注册他/她的附加信息 我的要求是,只有当用户第一次登录谷歌时,我才希望他被重定向到注册活动以获取更多信息。第一次之后,我想让他直接转到主屏幕。我如何做到这一点 这就是我迄今为止

我正在开发一个android应用程序,在这个应用程序中,用户可以选择通过注册该应用程序进行登录,也可以使用谷歌登录选项

使用表单登录工作正常。但是当用户登录google时,我会将用户重定向到注册屏幕,以便在我将用户登录到主屏幕之前获取更多信息。我唯一的问题是,当用户第一次登录谷歌时,用户会被重定向到第二个屏幕,在那里他/她注册他/她的附加信息

我的要求是,只有当用户第一次登录谷歌时,我才希望他被重定向到注册活动以获取更多信息。第一次之后,我想让他直接转到主屏幕。我如何做到这一点

这就是我迄今为止所尝试的。只是发布必要的代码

mAuthListener = new FirebaseAuth.AuthStateListener() {
        @Override
        public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
            if(firebaseAuth.getCurrentUser() != null){
                startActivity(new Intent(SignInActivity.this,ContactDetailsActivity.class));
            }
        }
    };
else if(view == signInWithGoogleButton)
    {
        Toast.makeText(SignInActivity.this,"Signing in with google...",Toast.LENGTH_SHORT).show();
        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);

    // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
    if (requestCode == RC_SIGN_IN) {
        GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
        if (result.isSuccess()) {
            // Google Sign In was successful, authenticate with Firebase
            GoogleSignInAccount account = result.getSignInAccount();
            firebaseAuthWithGoogle(account);
        } else {
            // Google Sign In failed, update UI appropriately
            // ...
            Toast.makeText(this,"not signed in",Toast.LENGTH_SHORT).show();
        }
    }
}

@Override
public void onStart() {
    super.onStart();
    mAuth.addAuthStateListener(mAuthListener);
    // Check if user is signed in (non-null) and update UI accordingly.
    FirebaseUser currentUser = mAuth.getCurrentUser();
    //updateUI(currentUser);
}
在注册屏幕中,我只获得有关用户电话号码、出生日期等信息。所以我的问题是,当用户第一次点击谷歌登录按钮时,用户必须进行注册。第一次之后,我想让他直接转到主屏幕


请帮我解决这个问题。

我认为启用自动管理可以解决这个问题

mGoogleApiClient = new GoogleApiClient.Builder(this)
            .enableAutoManage(this /* FragmentActivity */, new GoogleApiClient.OnConnectionFailedListener() {
                @Override
                public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
                }
            })
            .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
            .build();