登录Facebook后,ParserUser.currentUser()返回null



我刚开始研究Parse API,我发现在我的测试设备和模拟器上,facebook集成没有按预期工作。

在一个onClickListener中,我用Facebook帐户登录:

    ...SignInActivity.onCreate()....
    List<String> permissions = Arrays.asList("public_profile", "user_friends", "user_about_me",
        "user_relationships", "user_birthday", "user_location");
    ParseFacebookUtils.logIn(permissions, SignInActivity.this, new LogInCallback() {
      @Override
      public void done(ParseUser user, ParseException err) {
        progressDialog.dismiss();
        if (user == null) {
          Log.d("Parse",
              "Uh oh. The user cancelled the Facebook login.");
        } else if (user.isNew() && err == null) {
          Log.d("Parse",
              "User signed up and logged in through Facebook!");
          startActivity(new Intent(SignInActivity.this, MainActivity.class));
        } else if (err == null) {
          Log.d("Parse",
              "User logged in through Facebook!");
          startActivity(new Intent(SignInActivity.this, MainActivity.class));
        } else {
          Log.d("Parse", "Login err: "+err.getMessage());
        }
      }
    });

我确实检查了err是否为null,并且此步骤正确登录用户。

然后它将我发送到MainActivity,但当我退出应用程序并再次打开它时,

....at the end of SignInActivity.onCreate()...
ParseUser currentUser = ParseUser.getCurrentUser();
if ((currentUser != null) && ParseFacebookUtils.isLinked(currentUser)) {
  startActivity(new Intent(this, MainActivity.class));
} else {
  Log.d("Logging in with Facebook", "User not logged in. (currentUser != null) = " + (currentUser != null));
}

告诉我getCurrentUser()返回了null。

在Application.onCreate()中,我有以下代码来设置Parse和ParseFacebookUtils。

Parse.initialize(this, "xxxx",
    "xxxxx");
Parse.enableLocalDatastore(this);
ParseFacebookUtils.initialize(getString(R.string.app_id));
super.onCreate();

我使用的是facebook sdk v3.15.0和Parse 1.5.1

这是已知的问题还是我遗漏了什么?

谢谢你的帮助!

这是一个已知的Parse 1.5.1错误,如下所述:https://developers.facebook.com/bugs/229876443869758/

目前有一个解决方法:尝试禁用本地数据存储。

最新更新