Finding PFUsers from Parse - iOS



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

  • 1)从用户手机获取联系人。
  • 2) 查看这些数字中的每一个是否存在于其他 PFUer 的解析中。
  • 3) 通过获取具有该编号的 PFUser 来显示结果。

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

你读过 PFQuery 的 Parse 文档吗?

假设每个PFUser都有一个属性,如phoneNumber,如下所示:

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

不应该有更多,除非您更改了其他内容,例如使 PFUser 行无法通过 ACL 被其他人读取。

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

并不是

说您的每个电话号码都会与 parse.com 表中的每个条目进行比较。Parse 通过优化对类执行查询的方式,使处理后端变得容易。

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

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

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

最新更新