所以我在我的应用程序中使用FirebaseUI Auth来提供来自Google和Facebook的登录。我已经设置了标准的SharedPreferences
来检查应用数据是否已被清除,如果已经清除,请退出Firebase和提供商(按照文档中的说明)。退出Facebook非常简单: -
LoginManager.getInstance().logOut();
现在谷歌的方式是: -
Auth.GoogleSignInApi.signOut(mGoogleApiClient);
这段代码的问题是我不知道从哪里获得mGoogleApiClient
即GoogleSignInClient
对象。由于数据被清除,我无法在创建构建器时使用SharedPreferences
保存它。
任何帮助表示赞赏,谢谢!
请尝试以下代码
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getResources().getString(R.string.google_client_id))
.requestEmail()
.build();
mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
Intent signInIntent = mGoogleSignInClient.getSignInIntent();
startActivityForResult(signInIntent, RC_SIGN_IN);
对于注销使用下面的代码
mGoogleSignInClient.signOut();
if (googleApiClient.isConnected())
Auth.GoogleSignInApi.signOut(googleApiClient);
//where googleApiClient is object of GoogleApiClient.
只需将此行添加到您要在应用中注销的位置即可。
FirebaseAuth.getInstance().signOut();