真的很难解决这个问题,我想要做的就是通过我的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;
答案 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);