当我调用 mFirebaseAuth.signOut()
或 mFirebaseUser.delete()
时,我的 FirebaseAuth.AuthStateListener()
正常工作并返回 null
作为 onAuthStateChanged
中的 FirebaseUser
实例,我刷新 UI 并显示“使用 Google 登录”按钮。
但是当我想再次登录时,我看不到与用户的对话框(我的设备上有 2 个用户,附有图像)。该应用程序仅在首次登录时显示此对话框,之后它使用同一用户。如果我在设置屏幕上清除应用程序的数据,我将能够再次看到此对话框。
我的问题是如何在每次注销后显示此对话框。
按下“登录”按钮时运行此代码:
// in onCreate()
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
// in OnClickListener
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, FirebaseActivity.REQUEST_SIGN_IN);
在 onActivityResult()
中,我获得了 GoogleSignInResult
的实例,因此我需要的一切都会在调用 startActivityForResult()
后发生。
最佳答案
在 Firebase Auth Quickstart sample code ,退出 Google 提供商包括以下步骤。您退出时是否调用 GoogleSignInClient.signOut()
?
private void signOut() {
// Firebase sign out
mAuth.signOut();
// Google sign out
mGoogleSignInClient.signOut().addOnCompleteListener(this,
new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
updateUI(null);
}
});
}
关于android - Google Firebase 在 Android 应用中注销并忘记用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57280779/