我正在开发一个android应用程序,在那里,用户可以选择既注册到应用程序登录,也使用谷歌选项登录。
使用表单登录工作得非常好。但是当用户登录到google时,我将用户重定向到注册屏幕,以便在用户登录到主屏幕之前获得更多信息。我唯一的问题是,当用户第一次登录google时,用户被重定向到第二个屏幕,在那里他/她注册了他/她的附加信息。
我的要求是,只有当用户第一次登录谷歌时,我才希望他被重定向到SIgn up活动以获取更多信息。在第一次之后,我希望他被直接重定向到主屏幕。我该如何实现这一点?
这就是我到目前为止所尝试的。只是发布必要的代码。
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);
}在注册界面中,我只获得用户的电话号码、出生日期等信息。所以我的问题是,当用户第一次点击Sign in with google按钮时,用户必须通过注册。在第一次之后,我希望他直接重定向到主屏幕。
请帮助我如何实现这一点。
发布于 2017-09-13 17:43:10
我认为enableAutoManage可以解决这个问题。
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();https://stackoverflow.com/questions/44872472
复制相似问题