查询ParseObject

bry*_*duc 15 java android parse-platform

我正在尝试使用Parse查询获取Object.

这是我的代码:

ParseQuery<ParseObject> query = ParseQuery.getQuery("Conference");
    query.findInBackground(new FindCallback<ParseObject>() {
        public void done(List<ParseObject> results, ParseException e) {
            if (e == null) {
                // Results were successfully found from the local datastore.
            } else {
                showLog(e.toString());
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

com.parse.ParseException:java.lang.IllegalStateException:ParseObject没有'objectId'的数据.调用fetchIfNeeded()来获取数据.

BTW我的Conference班级包含指针.

mys*_*dad 9

如果你直接从Parse查询,你可以这样做:

ParseQuery<ParseObject> query = ParseQuery.getQuery("Conference");
...
query.include("name_of_the_column_containing_a_pointer");
query.include("another_pointer_column");
query.findInBackground(new FindCallback<ParseObject>() {
    public void done(List<ParseObject> results, ParseException e) {
        if (e == null) {
            // You can now access the pointers specified in the include
        } else {
            showLog(e.toString());
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

否则,如果您要查询本地数据存储区:

ParseQuery<ParseObject> query = ParseQuery.getQuery("Conference");
...
query.findInBackground(new FindCallback<ParseObject>() {
    public void done(List<ParseObject> results, ParseException e) {
        if (e == null) {
            ParseObject parseObject = results.get(0); // Get the object
            parseObject.fetchIfNeededInBackground(new GetCallback<ParseObject>() {
                public void done(ParseObject result, ParseException e) {
                    if (e == null)
                        // Do something with result
                }
            }
        } else {
            showLog(e.toString());
        }
    }
});
Run Code Online (Sandbox Code Playgroud)