这是我正在尝试做的一个例子。我将当前用户作为 PFUser,在另一个名为 Item 的类上,我有一个名为“owners”的关系,它是 PFUser 的关系。我想查询当前用户在关系中的所有 Item 实例。
我看到了相反查询方式的示例,但我没有看到如何获取关系然后将其过滤为关系上的 PFUser 匹配项。这是一个例子。
https://www.parse.com/questions/inverse-relationship-support
PFObject teacher = ...//PFObject of class "Teacher"PFRelation studentsRelation = [teacher relationforKey:@"students"]; PFQuery *query = studentsRelation.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
最佳答案
您可以在关系列上使用 whereKey:equalTo:
并向其传递一个 PFObject
。然后,此查询将返回在其 "students"
关系中具有此 student
的所有 Teacher
对象:
PFQuery *query = [PFQuery queryWithClassName:@"老师"];
[查询 whereKey:@"students"equalTo:student];
在此示例中,student
是一个 PFObject
,其类名与 "students"
中的关系相匹配。如果这是 PFUser
的关系,而您要查找当前用户的 "Teacher"
,则可以使用:
PFQuery *query = [PFQuery queryWithClassName:@"老师"];
[查询 whereKey:@"students"equalTo:[PFUser currentUser]];
这个答案也发布在 Parse 的社区论坛上:https://parse.com/questions/how-do-i-query-using-pfrelation-when-i-just-have-pfuser
关于parse-platform - 解析 : How do I query using PFRelation when I just have PFUser?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17331572/