[英]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.