我已经实施了Google Signing for Android应用。用户可以从Google登录按钮成功登录。
This screen appears while selecting a Social Account : 1
现在,用户已通过选择他/她的帐户成功登录。
现在,用户注销并尝试使用Google登录按钮再次登录。
目前,他没有被要求选择帐户,他会自动使用他/她第一次选择的帐户登录。
在注销时,我该怎么做才能清除所选帐户的缓存。
答案 0 :(得分:5)
在 android 的 firebase 文档中,他们只提到使用这个:
Firebase.auth.signOut()
但是,下次用户登录时,应用会自动选择之前的电子邮件。为了避免这种情况,您还应该使用以下代码:
googleSignInClient.signOut()
答案 1 :(得分:2)
由于您没有提供任何代码或参考登录和注销的方式,因此您可能会错误地从应用中退出用户。
以下是文档描述用户注销应该做的事情: https://developers.google.com/identity/sign-in/android/disconnect
退出:
Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
// ...
}
});
注意:您必须在注销前确认已调用GoogleApiClient.onConnected。
同时检查status
中的onResult
- 可能会出现一些错误,这可能会导致答案。
答案 2 :(得分:1)
GoogleSignInOptions gso = new GoogleSignInOptions.
Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).
build();
GoogleSignInClient googleSignInClient= GoogleSignIn.getClient(this,gso);
googleSignInClient.signOut().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()){
FirebaseAuth.getInstance().signOut(); // very important if you are using firebase.
Intent login_intent = new Intent(getApplicationContext(),YouLoginActivity.class);
login_intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK); // clear previous task (optional)
startActivity(login_intent);
}
}
});
答案 3 :(得分:0)
尝试使用此方法退出Google登录:
确保在您成功登录onConnected(Bundle arg0)
public void Disconnect_google() {
try {
if (mGoogleApiClient != null && mGoogleApiClient.isConnected()) {
mGoogleApiClient.clearDefaultAccountAndReconnect().setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
mGoogleApiClient.disconnect();
Toast.makeText(getApplicationContext(),"Disconnected",Toast.LENGTH_SHORT).show();
}
});
}
} catch (Exception e) {
Log.d("DISCONNECT ERROR", e.toString());
}
}
答案 4 :(得分:0)
在您从Google登录时退出时,请使用以下代码
if (mGoogleApiClient.isConnected()) {
Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
mGoogleApiClient.disconnect();
mGoogleApiClient.connect();
}
答案 5 :(得分:-1)
当您使用谷歌登录时,它将显示设备中的所有登录谷歌帐户。当您选择任何一个时,它会继续进行,但是当您从系统注销并再次登录时。它直接选择以前的帐户。
因此,要从设备中的所有现有帐户中进行选择,您必须清除应用数据。
用于清除应用数据,请按以下步骤操作 1.进入设备设置 2.选择APPs 3.选择你的应用程序 4.存储/清除数据