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

时间:2018-11-11 10:54:44

标签: android facebook firebase-authentication facebook-login

我找不到能解决我的问题的解决方案。

我使用Firebase和Facebook来注册我的应用。

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

Facebook First Login-Screen

我使用以下代码行从Firebase和Facebook注销:

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

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

Facebook Second Login-Screen

我只能继续使用以前使用的帐户。 我想回到第一个屏幕,在该屏幕中,我必须输入“通过电子邮件发送密码”,这样我才能使用另一个Facebook帐户登录。

在Stackoverflow上,我发现了以下有希望的代码:

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

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

1 个答案:

答案 0 :(得分:2)

在单击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));