Parse platform Parse.com关系查询-缩小结果范围问题

Parse platform Parse.com关系查询-缩小结果范围问题,parse-platform,relational,android-parsequeryadapter,Parse Platform,Relational,Android Parsequeryadapter,我有一个ParseQueryAdapter,如果我允许的话,它将正确显示所有帖子,但我正试图找到一种只显示来自朋友的帖子的方法。代码的相对位如下所示: public CustomAdapter(Context context) { // Use the QueryFactory to construct a PQA that will only show // Todos marked as high-pri super(context, new ParseQueryAd

我有一个ParseQueryAdapter,如果我允许的话,它将正确显示所有帖子,但我正试图找到一种只显示来自朋友的帖子的方法。代码的相对位如下所示:

public CustomAdapter(Context context) {
    // Use the QueryFactory to construct a PQA that will only show
    // Todos marked as high-pri
    super(context, new ParseQueryAdapter.QueryFactory<ParseObject>() {
        public ParseQuery create() {

            ParseUser user = ParseUser.getCurrentUser();

            ParseRelation<ParseUser> relation = user.getRelation("friends");
            ParseQuery relationQuery = relation.getQuery();
            relationQuery.whereExists("objectID");

            ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("Post");
            query.whereEqualTo("CreatedBy", relationQuery.whereExists("ObjectID"));
            return query;
        }
    });
}
publiccustomadapter(上下文){
//使用QueryFactory构建仅显示
//标记为高优先级的待办事项
super(上下文,新的ParseQueryAdapter.QueryFactory(){
公共ParseQuery创建(){
ParseUser=ParseUser.getCurrentUser();
ParseRelation=user.getRelation(“朋友”);
ParseQuery relationQuery=relation.getQuery();
relationQuery.whereExists(“objectID”);
ParseQuery查询=新的ParseQuery(“Post”);
query.whereEqualTo(“CreatedBy”,relationQuery.whereExists(“ObjectID”);
返回查询;
}
});
}
数据结构如下所示。用户具有朋友关系。所以我想从他们那里得到这个关系,并寻找与帖子的CreatedBy用户相匹配的objectID。我看到的一个问题是CreatedBy字段是指向用户的指针,其中友元关系中的objectID是字符串。我在这里尝试了很多不同的方法,但我很难让它发挥作用


因此,我不确定是否应该将CreatedBy转换为字符串,但我不确定如何将其转换为适用于整个查询的字符串。或者,我应该以用户的身份查看friends关系中的每个朋友,而不是查看objectID字段。

您需要的是
whereMatchesQuery()
方法,例如:

public CustomAdapter(Context context) {
    super(context, new ParseQueryAdapter.QueryFactory<ParseObject>() {
        public ParseQuery create() {

            ParseUser user = ParseUser.getCurrentUser();

            ParseRelation<ParseUser> relation = user.getRelation("friends");
            ParseQuery friendsQuery = relation.getQuery();

            ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("Post");
            query.whereMatchesQuery("CreatedBy", friendsQuery);
            return query;
        }
    });
}
publiccustomadapter(上下文){
super(上下文,新的ParseQueryAdapter.QueryFactory(){
公共ParseQuery创建(){
ParseUser=ParseUser.getCurrentUser();
ParseRelation=user.getRelation(“朋友”);
ParseQuery friendsQuery=relation.getQuery();
ParseQuery查询=新的ParseQuery(“Post”);
whereMatchesQuery(“CreatedBy”,friendsQuery);
返回查询;
}
});
}
基本上,您是说“查找‘CreatedBy’中的指针与此查询返回的一行匹配的行”


该方法记录在。

Perfect!这正是我想要的。我错过了那种提问。