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

私は実際に、役立つかもしれない友達リストの実装について話しているブログ投稿をたくさんしました。

コード サンプルは JavaScript で書かれていますが、iOS に変換するのは難しくありません。

関係、クエリ、更新などをカバーしています。

あなたの質問に対する簡単な答えは、リレーションの代わりに結合テーブルを使用して、リレーションシップの両側から簡単にクエリできるようにすることです。

Parse サイトの関係ガイドで多くの情報を見つけることができます。

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

于 2014-07-14T23:13:47.553 に答える
0

あなたが求めているのは PFUser *user = [PFUser currentUser] メソッドだと思います。現在ログインしているユーザーの友達を取得しようとしている場合。現在ログインしているユーザーがフォローしているユーザーを取得するために同じことを使用できます。

于 2015-01-25T21:05:47.443 に答える