几天前我实现了FB登录到我的APP,今天我发现我已经实现的大部分内容现已弃用.
之前,我正在使用Session以查看用户是否已登录.但是,这不适用于新的SDK.
根据他们的文档,我们可以使用AccessToken.getCurrentAccessToken()和Profile.getCurrentProfile()检查用户是否已经登录,但我无法使用它们.
我试过这样的事情:
if(AccessToken.getCurrentAccessToken() == null)
Run Code Online (Sandbox Code Playgroud)
我想知道如果我可以在其中使用它(这也是由FB提供),这是否会起作用:
LoginManager.getInstance().registerCallback(callbackManager, new LoginManager.Callback() {...});
Run Code Online (Sandbox Code Playgroud)
但是,我得到了"无法解析符号'回调'".
编辑!!!!!!
好的,所以我能够通过使用以下内容检查用户是否已登录:
on onCreate:
accessTokenTracker = new AccessTokenTracker() {
@Override
protected void onCurrentAccessTokenChanged(AccessToken oldAccessToken, AccessToken newAccessToken) {
updateWithToken(newAccessToken);
}
};
Run Code Online (Sandbox Code Playgroud)
然后,这会调用我的updateWithToken方法:
private void updateWithToken(AccessToken currentAccessToken) {
if (currentAccessToken != null) {
LOAD ACTIVITY A!
} else {
LOAD ACTIVITY B!
}
}
Run Code Online (Sandbox Code Playgroud)
现在,问题是:如果用户使用过该应用程序并且之前没有登录,我可以检查一下!但如果这是用户第一次使用该应用程序,updateWithToken则我的AccessTokenTracker永远不会调用它.
如果有人可以提供帮助,我真的很感激.
谢谢!
我在我的Android应用程序和facebook SDK中使用firebase也用于登录.我面临的唯一问题是,当我登录facebook,然后注销时,facebook登录按钮处于"注销"状态,当我点击它时,它会询问我是否要注销.
如图所示
我要做的是注销:
FirebaseAuth.getInstance().signOut()
Run Code Online (Sandbox Code Playgroud)
所以,这显然只清除我在firebase上的会话,但不会断开我的应用程序与Facebook,该怎么办?