在允许使用解析ios注册之前,请检查唯一的电话号码

在允许使用解析ios注册之前,请检查唯一的电话号码,ios,parse-platform,Ios,Parse Platform,我已将我的应用程序与解析框架集成,并在注册过程中添加了几个额外字段,其中之一是电话号码。在允许他们注册之前,我想检查以确保输入的电话号码是唯一的,就像解析用户名和电子邮件一样。然而,我在任何地方都找不到关于如何这样做的文档 我尝试在PFUser上运行一个查询,以检查输入的电话号码是否在用户表中,但该查询不起作用。除非其包含在signUpInBackgroundWithBlock代码中,否则结果始终为零。但是,将查询放在这里仍然会上载要解析的信息,而不管查询的结果如何。有人找到了这样做的方法吗?提

我已将我的应用程序与解析框架集成,并在注册过程中添加了几个额外字段,其中之一是电话号码。在允许他们注册之前,我想检查以确保输入的电话号码是唯一的,就像解析用户名和电子邮件一样。然而,我在任何地方都找不到关于如何这样做的文档


我尝试在PFUser上运行一个查询,以检查输入的电话号码是否在用户表中,但该查询不起作用。除非其包含在signUpInBackgroundWithBlock代码中,否则结果始终为零。但是,将查询放在这里仍然会上载要解析的信息,而不管查询的结果如何。有人找到了这样做的方法吗?提前谢谢

您可以添加beforeSave触发器来验证电话号码的唯一性。Parse.com文档中有一些很好的例子


如果您共享您的查询,这将很有帮助,但以下内容可能会起到作用:

PFQuery *query = [PFQuery queryWithClassName:@"User"];
[query whereKey:@"phoneNo" equalTo:@"0123456"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    if (!error) {
        // The find succeeded.

        if (objects.count == 0) {

            //Allow Number to be saved

        } else {

            //Give warning that the number is already in use

        }

    } else {
        // Log details of the failure
        NSLog(@"Error: %@ %@", error, [error userInfo]);
    }
}];

}

让我们看看非工作查询。谢谢@Asad Jamal Malik。我正在做一个PFUser.query,似乎这就是问题所在。谢谢@picciano。下面来自Asad的代码起作用了,但看起来beforeSave也可以做到这一点。我只是需要测试一下,因为我对它不熟悉。谢谢你!使用服务器端验证是一种方法,我怀疑允许用户通过数据库中的电话号码进行搜索是一个好主意,最好禁止用户进行此操作。然后使用云代码上的主密钥进行搜索。