解析:当我只有PFUser时,如何使用PFRelation进行查询?

Bre*_*nan 2 parse-platform pfrelation pfquery

这是我想要做的一个例子.我有当前用户作为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:...
Run Code Online (Sandbox Code Playgroud)

我可以使用whereKey,但我该怎么用?我是否在objectId上匹配?

[query whereKey:@"objectId" equalTo:user.objectId];
Run Code Online (Sandbox Code Playgroud)

我一直收到错误102:RelatedTo运算符需要一个有效的指针.我的猜测是,因为我从一个空对象开始,它没有起点.Teacher的示例必须以填充的实例开头.我唯一拥有的是PFUser.必须有一种方法来查询Item实例并在它拥有给当前用户的"所有者"关系上对其进行过滤.我无法弄清楚,我还没有找到如何进行此查询的示例.

这个问题也在Parse.com上:https://parse.com/questions/how-do-i-query-using-pfrelation-when-i-just-have-pfuser

Héc*_*mos 9

您可以whereKey:equalTo:在关系列上使用并传递它PFObject.然后,此查询将返回所有在其关系中Teacher具有此对象的对象:student"students"

PFQuery *query = [PFQuery queryWithClassName:@"Teacher"]; [query whereKey:@"students" equalTo:student];

在此示例中,studenta PFObject是一个className,其匹配关系"students".如果这是PFUsers 的关系并且您正在寻找当前用户的"Teacher"s,那么您将使用:

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