以下是我的电话号码验证码。首先我们查询以检查用户是否已存在;如果是这样,我想要与该用户一起登录。如果没有,我创建一个新的PFUser。
- (IBAction)confirmButtonTapped:(id)sender
{
// Check to see if a valid phone number is entered
if ([self.phoneNumberTextField.text hasPrefix:@"+56"] && self.phoneNumberTextField.text.length == 12){
self.phoneNumber = [self phoneNumberWithoutSpaces:self.phoneNumberTextField.text];
// Check if phone number is already assigned to a Parse user
PFQuery *phoneNumberQuery = [PFUser query];
[phoneNumberQuery whereKey:@"phoneNumber" equalTo:self.phoneNumber];
[phoneNumberQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error){
if (!error){
if (objects.count > 0){
// Move on to main tab bar and log in with user found
PFUser *user = [objects objectAtIndex:0];
[PFUser logInWithUsernameInBackground:user.username password:user.password block:^(PFUser *user, NSError *error){
if (!error){
[[NSUserDefaults standardUserDefaults] setValue:[NSNumber numberWithBool:YES] forKey:@"recoverUser"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:self.phoneNumber, @"phoneNumber", nil];
[PFCloud callFunctionInBackground:@"sendVerificationCode" withParameters:dict block:^(id object, NSError *error){
if (error){
NSLog(@"Error calling cloud function: %@", error.localizedDescription);
}
}];
[self performSegueWithIdentifier:@"confirmNumberSegue" sender:self];
} else {
NSLog(@"Error logging in: %@", error.localizedDescription);
[[[UIAlertView alloc] initWithTitle:@"Connection Failed" message:@"Please try again." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil] show];
}
}];
} else {
[[NSUserDefaults standardUserDefaults] setValue:[NSNumber numberWithBool:NO] forKey:@"recoverUser"];
[[NSUserDefaults standardUserDefaults] synchronize];
//Create new Parse user
[self createNewUser];
}
} else {
NSLog(@"Error fetching user object: %@", error.localizedDescription);
[[[UIAlertView alloc] initWithTitle:@"Connection Failed" message:@"Please try again." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil] show];
}
}];
} else {
[[[UIAlertView alloc] initWithTitle:@"Invalid Phone Number" message:@"Please enter a valid phone number." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil] show];
}
}
我在尝试登录时遇到Parse错误(代码:201)缺少用户密码。