这是我想要做的一个例子。我有当前用户作为PFUser和另一个名为Item的类我有一个名为“所有者”的关系,它是PFUser的关系。我想查询具有关系中当前用户的Item的所有实例。
我看到了相反查询方式的示例,但我没有看到如何获得关系,然后将其过滤到关系上的PFUser匹配。这是一个例子。
https://www.parse.com/questions/inverse-relationship-support
PFObject老师= ... //班级“教师”的PFObject PFRelation studentsRelation = [老师relationforKey:@“学生”]; PFQuery * query = studentsRelation.query; [query findObjectsInBackground:...
对于我的例子,我会这样做......
PFObject item = [PFObject objectWithClassName:@"Item"];
PFRelation relation = [parseObject relationforKey:@"owner"]; // Filter to PFUser?
[query findObjectsInBackground:...
我可以使用whereKey,但我可以使用什么?我是否在objectId上匹配?
[query whereKey:@"objectId" equalTo:user.objectId];
我一直收到错误102:RelatedTo运算符需要一个有效的指针。我的猜测是,因为我从一个空对象开始,它没有起点。 Teacher的示例必须以填充的实例开头。我唯一拥有的是PFUser。必须有一种方法来查询Item实例并在它拥有给当前用户的“所有者”关系上对其进行过滤。我无法弄清楚,我还没有找到如何进行此查询的示例。
这个问题也在Parse.com上:https://parse.com/questions/how-do-i-query-using-pfrelation-when-i-just-have-pfuser
答案 0 :(得分:9)
您可以在关系列上使用whereKey:equalTo:
并将其传递给PFObject
。然后,此查询将返回Teacher
个关联中student
的所有"students"
个对象:
PFQuery *query = [PFQuery queryWithClassName:@"Teacher"];
[query whereKey:@"students" equalTo:student];
在此示例中,student
是PFObject
,其className与"students"
中的关系相匹配。如果这是PFUser
s的关系,并且您正在寻找当前用户的"Teacher"
,那么您将使用:
PFQuery *query = [PFQuery queryWithClassName:@"Teacher"];
[query whereKey:@"students" equalTo:[PFUser currentUser]];
此答案也发布在Parse的社区论坛上:https://parse.com/questions/how-do-i-query-using-pfrelation-when-i-just-have-pfuser