使用 Firebase 和 Android 更改 Facebook 帐户/完全注销

Change Facebook Account / log out completely using Firebase and Android

我找不到任何解决我的问题的方法。

我使用 Firebase 和 Facebook 注册我的应用程序。

当我第一次注册我的应用程序时,我看到以下屏幕:

Facebook First Login-Screen

我使用以下代码行退出 Firebase 和 Facebook:

FirebaseAuth.getInstance().signOut();
LoginManager.getInstance().logOut();

之后,当我再次尝试使用 Facebook 登录时,出现以下屏幕:

Facebook Second Login-Screen

我只能继续使用之前使用的帐户。 我想回到第一个屏幕,在那里我必须通过电子邮件输入密码,以便我可以在需要时使用另一个 Facebook 帐户登录。

在 Whosebug 上,我发现了以下有前途的代码:

FacebookSdk.sdkInitialize(getApplicationContext());
    if (AccessToken.getCurrentAccessToken() != null) {
        new GraphRequest(AccessToken.getCurrentAccessToken(), "/me/permissions/", null, HttpMethod.DELETE, new GraphRequest.Callback() {
            @Override
            public void onCompleted(GraphResponse graphResponse) {
                AccessToken.setCurrentAccessToken(null);
                LoginManager.getInstance().logOut();
            }
        }).executeAsync();
    }

但这也没有解决我的问题。

之后我得到以下屏幕:

Facebook alternate Second Login-Screen

非常感谢您的帮助,对于任何英语错误,我深表歉意。

在点击 facebook 登录按钮之前使用下面的代码

    accessTokenTracker = new AccessTokenTracker() {
        @Override
        protected void onCurrentAccessTokenChanged(AccessToken oldAccessToken, AccessToken currentAccessToken) {
            accessTokenTracker.stopTracking();
            DebugLog.infoLog("Token Changed Called");
            if (currentAccessToken == null) {
              LoginManager.getInstance().logInWithReadPermissions(mActivity, Arrays.asList(permissionList));;
            }
        }
    };
    AccessToken.refreshCurrentAccessTokenAsync();

在上面的代码之后,只需调用下面提到的登录代码(使用处理程序调用下面的代码,等待时间为 1 毫秒):

LoginManager.getInstance().logInWithReadPermissions(mActivity, Arrays.asList(permissionList));