ParseQuery包括返回null

时间:2014-11-29 03:23:14

标签: java android null parse-platform

对于我正在处理的应用程序,我正在使用Parse(www.parse.com)并且我在_User类中有两个不同的指针数组。该类包含两个我想在查询中包含的列:“follow”和“friends”。

我的问题是结果总是空指针或空指针,具体取决于我查询它的方式。

解析提及:

  

在某些情况下,您希望在一个查询中返回多种类型的相关对象。您可以使用include方法执行此操作。

但是,使用此include方法会导致结果为null。这是我的代码:

ParseQuery<AAUser> query = ParseQuery.getQuery(AAUser.class);
query.include("following");
query.include("friends");
query.getInBackground(ParseUser.getCurrentUser().getObjectId, new GetCallback<AAUser>() {
    @Override
    public void done(AAUser user, ParseException e) {
        if(e != null)
            return;

        Log.d(TAG, String.valueOf(user.getFollowing()));
    }
});
每当我包含该字段时,

user.getFollowing() alwas都会返回[null]。但是,如果我不包含它,它将返回一个空指针。 [AALocation{id='iLUigvrvrc'}]

如您所见,我查询了我的子类AAUser类。我仍然通过查询ParseUser类得到相同的结果,所以我没有看到子类化是如何产生影响的。

我该如何解决这个问题?这是Parse SDK的错误吗?我正在使用Parse Android SDK的1.7.1版本。

我基本上试图刷新包含这些字段的当前用户数据,但我发现它不能正常工作......  是的,我尝试了fetchInBackground(),但它没有给我任何方法来包含这些字段。我目前的解决方法是使用空指针并逐个查询所有这些指针,但我发现这是一个糟糕的解决方法......请停止。

1 个答案:

答案 0 :(得分:0)

试试这个:

ParseQuery<ParseObject> query = ParseQuery.getQuery("_User");
         query.include("following");
         query.include("friends");
         query.findInBackground(new FindCallback<ParseObject>() 
          {
              public void done(List<ParseObject> followinglist, ParseException e) 
              {

                for (ParseObject following : followinglist) 
                {
                  ParseObject follow = following.getParseObject("following");
                  ParseObject friend=following.getParseObject("friends");


                }
              }
            });