2017-02-18 129 views
0

我正在運行以下代碼,我聲明瞭ArrayList'userHolder'。解析服務器'User'類中還有兩個值,它們是列表數組(FgiA ...,Swu ...)中的值。運行此代碼時,雖然值位於objectId列中的用戶表上,但沒有得到任何結果。我不確定什麼是錯誤的,因爲我期望得到結果。Android Parse查詢返回不結果

userHolder.add("FgiAXHQCOB"); 
    userHolder.add("SwuT8v7pIQ"); 
    Log.i("test", Integer.toString(userHolder.size())); 
    ParseQuery<ParseObject> query = ParseQuery.getQuery("User"); //Query table 
    query.whereContainsAll("objectId",userHolder); 
    query.findInBackground(new FindCallback<ParseObject>() { 
     @Override 
     public void done(List<ParseObject> list, ParseException e) { 
      if (e == null){ 
       Log.i("Find All", "Retrieved: " + list.size() + " objects in list!"); 
       if (list.size()>0){ 
        for (ParseObject object : list){ 
         Log.i("wtf", object.getString("username")); 
        } 
       } 
       Log.i("Find All", "Success!"); 
      } 
      else { 
       Log.i("Find All", "Failed!"); 
      } 
     } 
    }); 
+0

它是失敗還是返回空列表? – muratgu

+0

它正在運行,但我沒有得到結果。以下行「Log.i(」Find All「,」Retrieved:「+ list.size()+」list in list!「);」正在打印「I/Find All:已檢索:列表中的0個對象!」 –

回答

0

containsAll應該用於比較兩個數組,並且需要該密鑰是一個數組。在你的情況下,這是一個奇異值(objectId)。改爲嘗試containedIn

+0

我將代碼行改爲「query.whereContainedIn(」objectId「,userHolder);」當我期望得到2時,我仍然得到0個對象。 –

+0

@ M.Phillip你可以嘗試'whereEqualTo'具有單個值嗎? – muratgu

+0

我還沒有得到結果。我將該行更改爲「query.whereEqualTo(」objectId「,」FgiAXHQCOB「);」 –