[英]Parse : Facebook login and localDataStore
在我的应用程序中从Parse.com实现Facebook登录时,遇到了一些奇怪的行为。 这是如何使用其样本中的Blank Facebook App样本代码复制它的方法:
我想创建一个与当前用户关联的新“帖子”。 在UserDetailsActivity的onCreate()末尾,我添加了:
ParseObject post = new ParseObject("Post");
post.put("name", "New post");
post.put("user", ParseUser.getCurrentUser());
post.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e != null) {
e.printStackTrace();
}
}
});
在我在应用程序中启用localDataStore之前,此方法运行良好。 上面的代码返回:
com.parse.ParseException : java.lang.IllegalArgumentException : Cannot save a ParseUser until it has been signed up. Call signUp first.
注意:在ParseFacebookUtils.logIn()的回调中返回的与ParseUser关联的数据为null(objectId,username,..),这说明了上述行为。
问题是:为什么要添加
Parse.enableLocalDatastore(this);
到应用程序使Facebook登录返回空的ParseUser?
每两次启动都会发生此错误:
我正在使用Parse 1.5.0和Facebook SDK 3.14。
根据https://parse.com/docs/android/api/com/parse/ParseUser.html#getCurrentUser() , ParseUser.getCurrentUser()
很可能返回null。 您可能想要先进行Facebook登录,然后尝试使用ParseUser
ParseFacebookUtils.logIn(getActivity(), new LogInCallback() {
@Override
public void done(ParseUser user, ParseException err) {
if(user != null) {
// use ParseUser here
}
}
});
另外,我不建议在Facebook SDK的3.14版中使用Parse 1.5.0。 用于Parse的文档https://www.parse.com/docs/android_guide#fbusers声明“ Parse与适用于Android的Facebook SDK v3.0兼容”。 我的经历使我相信他们没有说谎。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.