如何从Parse中的指针查询

时间:2016-05-19 12:16:21

标签: android parse-platform

我在ParseClass中创建了一个Pointer我想从Pointer查询添加我创建的ParseObject类,那么如何设置ParseObject来查询指针。

游戏Parse类有Pointer'Place'

@ParseClassName("Games")
public class Offers extends ParseObject{

        public String getPlaceName() {
            return getString(getParseObject("Places").getString("PlaceName"));
        }

2 个答案:

答案 0 :(得分:-1)

如果您想获取具有相关地方数据的游戏对象,则应在查询中使用“包含”。

ParseQuery<Offers> query = ParseQuery.getQuery(Offers.class);
//query.equalTo("objectId", "gameId");
query.include("Places");
query.getFirstInBackground(new GetCallback<Offers>() {
    @Override
    public void done(Offers obj, ParseException e) {
        if(e!=null) {
            Log.e("err", e.getMessage());
        }
        else {
            Log.d("PlaceName", obj.getParseObject("Places").getString("PlaceName"));
        }
    }
});

如果要通过指针获取相关数据(ParseObject只包含id)

            ParseObject place = ParseObject.createWithoutData("Places","id");
            place.fetchInBackground(new GetCallback<ParseObject>() {
                @Override
                public void done(ParseObject object, ParseException e) {
                    //do what you want
                }
            });

答案 1 :(得分:-1)

试试吧

        final ArrayList<ParseObject> Places = new ArrayList<ParseObject>();

    ParseQuery<ParseObject> offer = new ParseQuery<ParseObject>("className");

    offer.findInBackground(new FindCallback<ParseObject>() {

        @Override
        public void done(List<ParseObject> objects, ParseException e) {
            // TODO Auto-generated method stub
            if (e == null) {
                // success
                for (ParseObject parseObject : objects) {
                    Places.add(parseObject.getParseObject("Places"));
                }

                Log.e("TAG ", "get parse pointer object " + Places.size());
            } else {
                // fail
            }
        }
    });