对于我正在处理的应用程序,我正在使用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(),但它没有给我任何方法来包含这些字段。我目前的解决方法是使用空指针并逐个查询所有这些指针,但我发现这是一个糟糕的解决方法......请停止。
答案 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");
}
}
});