我找不到能解决我的问题的解决方案。
我使用Firebase和Facebook来注册我的应用。
当我第一次注册我的应用程序时,出现以下屏幕:
我使用以下代码行从Firebase和Facebook注销:
FirebaseAuth.getInstance().signOut();
LoginManager.getInstance().logOut();
当我尝试再次使用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 alternate Second Login-Screen
非常感谢您的帮助,对于任何英语错误,我们深表歉意。
答案 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));