如何查询用户指针< _user>使用Parse.com与Android的字段

时间:2014-12-28 18:48:15

标签: java android parse-platform

真的很难解决这个问题,我想要做的就是通过我的Routines表运行查询,选择属于某个用户的例程。运行普通查询需要查询.whereEqualTo(“routineIcon”,“1”)将调出第一行和第三行。但是,棘手的一点是查询用户(Point< _user>)字段,这是对User类的用户(objectId)的引用。最初我尝试了query.whereEqualTo(“用户”,“RE1bvmzyPk”),但是这个空白,所以我查看了查询指针,我已经完成了一些事情,但无法让它工作。有人有任何提示吗?

private void retrieveRoutines() {
    ParseQuery<ParseObject> query = ParseQuery.getQuery("Routine");
    query.whereEqualTo("user", "RE1bvmzyPk");
    query.findInBackground(new FindCallback<ParseObject>() {
        @Override
        public void done(List<ParseObject> routines, ParseException e) {
            if (e==null){
                mRoutines = routines;
                String[] routineNames = new String[mRoutines.size()];
                int i = 0;
                for (ParseObject routine : mRoutines) {
                    routineNames[i] = routine.getString("routineName");
                    Log.d("OK", routineNames[i]);
                    i++;
                }


            }

            else {
                //error
            }
        }
    });
}

例程类的格式为:

objectId(string)| routineIcon(string)| routinesName(string)| user(指针&lt; _User&gt;

2 个答案:

答案 0 :(得分:5)

您可以使用用户的objectid

创建用户指针
ParseUser user=new ParseUser();
user.setObjectId("RE1bvmzyPk");

ParseQuery<ParseObject> query = ParseQuery.getQuery("Routine");
query.whereEqualTo("user", user);
query.findInBackground(new FindCallback<ParseObject>() {
    @Override
    public void done(List<ParseObject> routines, ParseException e) {
        if (e==null){



        }

        else {
            //error
        }
    }
});

答案 1 :(得分:0)

如果你想要指向的例程(由用户创建)

将指针字段添加到例程:

“createdBy”type = pointer

然后使用User Obj。

查询它
  ParseQuery<ParseObject> query = ParseQuery.getQuery("Routine");
    query.whereEqualTo("createdBy", $userObj);