android - Google Firebase 在 Android 应用中注销并忘记用户

标签 android firebase google-play-services firebase-authentication

当我调用 mFirebaseAuth.signOut()mFirebaseUser.delete() 时,我的 FirebaseAuth.AuthStateListener() 正常工作并返回 null 作为 onAuthStateChanged 中的 FirebaseUser 实例,我刷新 UI 并显示“使用 Google 登录”按钮。

但是当我想再次登录时,我看不到与用户的对话框(我的设备上有 2 个用户,附有图像)。该应用程序仅在首次登录时显示此对话框,之后它使用同一用户。如果我在设置屏幕上清除应用程序的数据,我将能够再次看到此对话框。

我的问题是如何在每次注销后显示此对话框。

enter image description here

按下“登录”按钮时运行此代码:

// 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/

相关文章:

Android-O 在辅助显示屏上启动

Android: Butter knife 无法在布局中找到并转换相应的 View

angularjs - ValueChanges 和 SnapshotChanges,不再使用 Firebase AngularFire2 获取完整列表

firebase - 错误 : 16 UNAUTHENTICATED: Failed to retrieve auth metadata with error: Could not refresh access token

android - Google Play 位置库 : Manifest merger failed

android - 滚动 Activity 标题

android - Volley JsonArrayRequest Post 请求不起作用

ios - 使用来自 GoogleService-Info.plist 的信息访问 Firebase 前端

javascript - react native 谷歌登录返回状态代码 : 12501

android - Google Play 服务 3.1 的状态