0

试图找出以下情况的一些逻辑时遇到了一些麻烦。

我使用 parse 为我的移动应用程序构建了一个朋友系统。简而言之,当用户“关注”某事时,他们就会建立关系。该关系包含单个用户关注的所有人员。

User
Relationship - Friends (contains all of the users that that overall user has followed)

我可以很容易地查询单个用户正在关注谁:

PFQuery *query = [PFUser query];
[query whereKey:@"username" equalTo:@"asg"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    for (PFObject *object in objects) {

        PFRelation *friendsRelation = [object objectForKey:@"Friends"];

        PFQuery *query = [friendsRelation query];
        [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
            if (!error) {
                NSLog(@"%@", objects);
            } else {

            }
        }];
    }
}];

但是,我如何查询谁在关注某个用户?所以,一个用户的追随者。

4

3 回答 3

1

如果您已经认识该用户,请使用whereKey:equalTo:

PFObject *user = ...;
PFQuery *query = [PFUser query];
[query whereKey:@"Friends" equalTo:user];
[query findObjectsInBackgroundWithBlock:^(NSArray *results, NSError *error) {

如果您需要进行查询以获取用户,则将请求与whereKey:matchesQuery:

[query whereKey:@"Friends" matchesQuery:userQuery];
于 2014-07-14T19:01:07.427 回答
0

我认为您要的是 PFUser *user = [PFUser currentUser] 方法。如果您正在尝试检索当前登录用户的朋友。您可以使用相同的方法检索当前登录用户关注的用户。

于 2015-01-25T21:05:47.443 回答
0

实际上,我写了一堆关于实现朋友列表的博客文章,这可能会对您有所帮助:

代码示例使用 JavaScript,但转换到 iOS 应该不会太难。

它涵盖了关系、查询、更新等。

对您的问题的简短回答是使用联接表而不是关系,这样您就可以轻松地从关系的双方进行查询。

您可以在 Parse 网站上的关系指南中找到很多信息:

https://parse.com/docs/relations_guide#manytomany-jointables

于 2014-07-14T23:13:47.553 回答