繁体   English   中英

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

[英]Change Facebook Account / log out completely using Firebase and Android

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

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

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

Facebook第一个登录屏幕

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

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

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

Facebook第二登录屏幕

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM