从Parse中寻找PFUsers - iOS

时间:2014-03-02 13:36:33

标签: ios iphone database database-design parse-platform

我的iPhone应用程序必须搜索存储在Parse上的相同电话号码。流程是,

  • 1)从用户手机获取联系人。
  • 2)查看其他PFUser是否存在解析中的每个号码。
  • 3)通过使用该号码获取PFUser来显示结果。

    这与whatsapp相同,我们可以看到我们的联系人使用Whatsapp。所以基本上我知道要查询并找出用户,但我的问题是,这是优化的方式吗?例如,如果我有50个联系人,并且每个数字将被明显比较,直到找到匹配,如果有1k / 10K /更多..用户那么这将是非常密集的工作!所以请帮助我找到最好的和最快的方式,因为我是初学者使用解析,任何帮助赞赏。非常感谢专家。

2 个答案:

答案 0 :(得分:0)

您是否阅读过Parse docs for PFQuery

假设每个PFUser都有phoneNumber之类的属性,例如:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"phoneNumber in %@", phoneNumbersArray];
PFQuery *query = [PFQuery queryWithClassName:[PFUser parseClassName] predicate:predicate];
NSArray *pfUsers = [query findObjects];

除非你改变了其他内容,否则它应该没有更多,例如使其他人无法通过ACL读取PFUser行。

答案 1 :(得分:0)

我不太清楚您是否担心查询的速度或结果集的大小,但我相信这是查询。

您的每个电话号码都不会与您的parse.com表格中的每个条目进行比较。 Parse通过优化对类执行查询的方式,使您可以轻松处理后端。

您可以为搜索使用简单的查询约束。将您要查询的所有电话号码放入一个数组中,然后创建如下查询:

PFQuery query = [PFUser query];
[query whereKey:@"phone" containedIn: arrayWithPhoneNumbers];

这将返回一个结果集,其中包括所有用户的电话号码与arrayWithPhoneNumbers中的任何数字相匹配。