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