我正在使用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

08-15 18:08