我正在使用Parse.com,并且要获取我想要的信息,请使用查询。
所以我用那个:
ParseUser PhotoeUser;
ParseQuery<Photo> UserQuery = ParseQuery.getQuery(Photo.class);
UserQuery.whereEqualTo("objectId", PhotoID);
UserQuery.getFirstInBackground(new GetCallback<Photo>() {
@Override
public void done(Photo pPhoto, ParseException error) {
PhotoUser = pPhoto.getUser();
}
});
因此,我想要的只是在该查询之外使用
PhotoUser
。但是当我写:Log.i("Profile", "PhotoUser = " + PhotoUser.get("objectId"));
PhotoUser.get("objectId")
是null
。另一个例子是这个:
public ParseUser getUser(){
ParseQuery<Photo> UserQuery = ParseQuery.getQuery(Photo.class);
UserQuery.whereEqualTo("objectId", PhotoID);
UserQuery.getFirstInBackground(new GetCallback<Photo>() {
@Override
public void done(Photo pPhoto, ParseException error) {
PhotoUser = pPhoto.getUser();
}
});
return PhotoUser;
}
在这里,当我要返回
PhotoUser
时,它是null
。请帮我。如果您需要更多信息,请提出要求。
最佳答案
只需将ParseUser放在块外:
PhotoUser pUser;
ParseQuery<Photo> UserQuery = ParseQuery.getQuery(Photo.class);
UserQuery.whereEqualTo("objectId", PhotoID);
UserQuery.getFirstInBackground(new GetCallback<Photo>() {
@Override
public void done(Photo pPhoto, ParseException error) {
pUser = pPhoto.getUser();
}
});
不要忘记给变量起名字。我不知道在查询
PhotoUser
时如何获得Photo
。