2014-07-14 55 views
3

我使用的解析Android SDK中我的應用程序漸漸空虛了用戶的Facebook登錄後ParseAndroid

我使用Facebook登錄下面的代碼

即使是新用戶還是老用戶,否則塊始終執行。我所得到的是空用戶(對象標識爲空)。

我下面的清單 1.我從後端 2.我創造了新的Facebook應用程序與bebug散列鍵 3.我用同樣的Facebok的應用程序ID在我的代碼 4.我是否確保消滅了所有數據debuggable = true在Androidmanifest中設置

任何人都可以在此幫忙嗎?

ParseFacebookUtils.logIn(Arrays.asList(Constants.EMAIL, Permissions.Friends.ABOUT_ME), activity, new LogInCallback()   
     { 
      @Override 
      public void done(ParseUser user, ParseException err) 
      { 

       if(err!=null) 
       { 
        err.printStackTrace(); 
       } 
       if (user == null) 
       { 
        errorClosure.callback(null); 
       } 
       else if (user.isNew())  
       { 
        Log.e("user.isNew", user.getObjectId()+""); 
        //ParseFacebookUtils.link(user, Arrays.asList(Constants.EMAIL, Permissions.Friends.ABOUT_ME),activity, new OnParseUserSaveCallBack(user, successClosure)); 
       } 
       else  
       { 
        Log.e("Object IDDDDDDDDD", user.getObjectId()+""); 
        successClosure.callback(null); 
       } 
      } 
     }); 

回答

2

Facebook登錄後的空值ParseUser目前是Parse SDK> = 1.5.0的缺陷。請參閱:https://developers.facebook.com/bugs/229876443869758/

您是否也啓用了本地數據存儲?解決方法是禁用它,直到正式修復發佈。

編輯:另外,你檢查,如果ParseFacebookUtils.finishAuthentication()被稱爲活動?換句話說,您應該以這種方式描述onActivityResult()方法:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    super.onActivityResult(requestCode, resultCode, data); 
    ParseFacebookUtils.finishAuthentication(requestCode, resultCode, data); 
} 
+0

我沒有使用新功能本地數據存儲。我在我的Activity中調用了finishAuthentication()。我仍然在Facebook登錄後獲得空的用戶。任何建議如何克服這一點。 – saravanan

+0

還應該提到finishAuthentication()應該在android ** Activity **的onActivityResult中調用,_NOT_在Activity中使用的android ** Fragment **。 必須做出區分,因爲如果您使用標準Facebook SDK(無Parse)登錄,他們建議您使用Fragment。 –

+0

現在在Parse-1.9.1中它是'ParseFacebookUtils.onActivityResult(requestCode,resultCode,data);' – Robert

0

在Android 4.2上一致地獲取此錯誤。我找到了一種解決方法,但它只適用於API 19+,作爲我註銷的一部分,我呼籲ActivityManager.clearApplicationUserData()清除導致解析SDK問題的本地文件。現在,用戶現在可以用Facebook重新登錄。

if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.KITKAT){ 
        logger.debug("yay we're on 19+ clearApplicationUserData"); 
        ActivityManager am = (ActivityManager)CMeApp.get().getSystemService(Context.ACTIVITY_SERVICE); 
        am.clearApplicationUserData(); 
}