Parse.com 查询 PFUser CurrentUser
Posted
技术标签:
【中文标题】Parse.com 查询 PFUser CurrentUser【英文标题】:Parse.com Query for PFUser CurrentUser 【发布时间】:2013-11-01 20:24:31 【问题描述】:大家好,我发布的查询中的每个人我正在尝试检索所有帖子和 PfUserCurrent 与 PfUserCurrent 分享友谊的人的所有帖子。
查询工作正常,但我只有一个问题,查询显示了 CurrentUser 之友的所有帖子,但没有显示 CurrentUser 发送的帖子...我尝试了几次但无法修复这个……你能解释一下我哪里错了吗?
-(void)QueryForPost
PFQuery *QueryForFriend=[PFQuery queryWithClassName:@"Friendships"];
[QueryForFriend whereKey:@"To_User" equalTo:[PFUser currentUser]];
[QueryForFriend whereKey:@"STATUS" equalTo:@"Confirmed"];
PFQuery *QueryYES = [PFQuery queryWithClassName:@"Post"];
[QueryYES whereKey:@"FLASH_POST" equalTo:[NSNumber numberWithBool:YES]];
[QueryYES whereKey:@"UserSelected" equalTo:[PFUser currentUser]];
PFQuery *QueryNO = [PFQuery queryWithClassName:@"Post"];
[QueryNO whereKey:@"FLASH_POST" equalTo:[NSNumber numberWithBool:NO]];
[QueryNO whereKey:@"Author" matchesKey:@"From_User" inQuery:QueryForFriend];
PFQuery *query = [PFQuery orQueryWithSubqueries:@[QueryYES,QueryNO]];
[query includeKey:@"Author"];
[query orderByDescending:FF_CREATEDAT];
[query findObjectsInBackgroundWithBlock:^(NSArray *results, NSError *error)
if (!error)
NSLog(@"%@", results);
ArrayforPost = [[NSMutableArray alloc] init];
for (PFObject *object in results)
[ArrayforPost addObject:object];
[self.FFTableView reloadData];
];
【问题讨论】:
它是意大利语,所以我很难理解你的数据库方案。您应该向我们提供有关您的数据库方案的更多详细信息:) 您可以尝试在您的QueryForFriend queries
下添加此[QueryForFriend includeKey:@"Da_User"]
。如果Da_User
是指针,这可能是个问题
BabyGau 您好,谢谢您的回答:D 我编辑了帖子,试图将数据库的所有字母都用英文写,以便您更好地理解......我还尝试添加您的建议(includekey Da_User ) 但它不起作用......用户当前帖子没有出现的时间...... : ((((
我认为您的查询没有任何问题。我对[query orderByDescending:FF_CREATEDAT];
这一行表示怀疑,其中FF_CREATEDAT
可能与POST
类中的键createdAt
不匹配。 ArrayforPost
是 FFTableView
的数据源???
It ArrayforPost 是 Tableview 中使用的 NSMutableArray ...。如果我删除这一行 [QueryForFriend whereKey: @"To_User" equalTo: [PFUser currentUser]];因此,我还查看了用户当前的时间问题是,如果我删除此行,当前用户会看到该应用程序的所有订阅者的帖子,这不好,因为它应该像往常一样只阅读他朋友的帖子社交网络...添加此行帖子被过滤并仅显示朋友的帖子,但似乎帖子没有出现 CurrentUser
【参考方案1】:
经过与@rory 的长时间讨论,我们得出了正确答案:
-(void)QueryForPost
PFQuery *QueryForFriend=[PFQuery queryWithClassName:@"Amicizie"];
[QueryForFriend whereKey:@"A_User" equalTo:[PFUser currentUser]];
[QueryForFriend whereKey:@"STATO" equalTo:@"Confermato"];
[QueryForFriend includeKey:@"Da_User"];
PFQuery *QueryYES = [PFQuery queryWithClassName:@"Post"];
[QueryYES whereKey:@"FLASH_POST" equalTo:[NSNumber numberWithBool:YES]];
[QueryYES whereKey:@"Scelti" equalTo:[PFUser currentUser]];
PFQuery *normalPostByFriends = [PFQuery queryWithClassName: @"Post"];
[normalPostByFriends whereKey: @"FLASH_POST" equalTo: [NSNumber numberWithBool: NO]];
[normalPostByFriends whereKey: @"Utente" matchesKey:@"Da_User" inQuery:QueryForFriend];
PFQuery *normalPostByUser = [PFQuery queryWithClassName:@"Post"];
[normalPostByUser whereKey: @"FLASH_POST" equalTo: [NSNumber numberWithBool: NO]];
[normalPostByUser whereKey: @"Utente" equalTo: [PFUser currentUser]];
PFQuery *query = [PFQuery orQueryWithSubqueries:@[QueryYES,normalPostByFriends,normalPostByUser ]];
[query includeKey:@"Author"];
[query orderByDescending:FF_CREATEDAT];
[query findObjectsInBackgroundWithBlock:^(NSArray *results, NSError *error)
if (!error)
NSLog(@"%@", results);
ArrayforPost = [[NSMutableArray alloc] init];
for (PFObject *object in results)
[ArrayforPost addObject:object];
[self.FFTableView reloadData];
];
通过另一个查询来显示当前用户的正常帖子并修改QueryForFriend
以获得正确的查询
【讨论】:
再次感谢您提供的一切,您总是非常乐于助人和友善!以上是关于Parse.com 查询 PFUser CurrentUser的主要内容,如果未能解决你的问题,请参考以下文章
facebook 登录是不是要求我在我的应用程序中使用 PFUser(使用 parse.com)?