如何使parse.com对象属性独一无二?

时间:2014-01-17 19:30:07

标签: ios parse-platform

我拥有需要唯一的PFUser对象的属性。

例如,默认电子邮件字段是唯一的,并在未满足条件时引发带有警报的异常。

如何将此字段设置为唯一?

1 个答案:

答案 0 :(得分:4)

为了澄清,解析在User模型上强制执行电子邮件唯一性,但是您希望在其他某个字段上强制执行唯一性,比如像employeeId这样的组合。

要在客户端执行此操作,请先执行查询以确保满足条件:

NSString *employeeId = @"hopefully this is unique";
PFQuery *query = [PFUser query];
[query whereKey:@"employeeId" equalTo:employeeId];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {

    if (objects.count) {
        NSLog(@"shucks, the employeeId isn't unique");
    } else {
        PFUser *user = [PFUser user];
        user.employeeId = employeeId;
        // setup the rest of user
        [user signUpInBackgroundWithBlock:(BOOL success, NSError *error) {
            if (success) NSLog(@"yay!  new user);
        }];
    }
}];

要在服务器端执行此操作,可能可以在用户模型的beforeSave挂钩中执行基本相同的操作。

Parse.Cloud.beforeSave(Parse.User, function(request, response) {});