https://www.parse.com/questions/pfuser-fails-when-re-trying-signup-with-anonymous-user-ios
总而言之,如果匿名用户尝试注册并输入已存在的用户名,则不允许他们使用新用户名注册。在代码中,意味着启用了匿名用户:
PFUser *user = [PFUser currentUser];
user.username = @"existing_username_in_users_table";
user.password = @"password";
[user signUp]; // this fails with Error: username existing_username_in_users_table already taken (Code: 202, Version: 1.2.19)
user.username = @"unique_username";
[user signUp]; //
此操作失败并显示错误:无法注册已注册的用户。 (代码:202,版本:1.2.19) 有什么建议可以解决这个问题?正如错误所示,我使用的是Parse 1.2.19,这似乎是最新的。
答案形式是:听起来像个错误。您可以使用错误工具打开新报告吗?
答案 0 :(得分:0)
* //让所有用户在忘记密码部分
中检查是否有效用户-(void)checkForTheExistingUsersAndSignup
{
NSString *usernameString = [userNameTextField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSString *passwordString = [passwordTextField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSString *emailString = [emailTextField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
//To check validations
if ([usernameString length] == 0)
{
[ReusedMethods ShowAllertWithTitle:@"app name" message:@"Enter Username" delegate:nil cancelTitle:@"OK" otherTitle:nil tag:0];
[userNameTextField becomeFirstResponder];
}
else if ([emailString length] == 0)
{
[ReusedMethods ShowAllertWithTitle:@"app name" message:@"Enter Email ID" delegate:nil cancelTitle:@"OK" otherTitle:nil tag:0];
[emailTextField becomeFirstResponder];
}
else if ([passwordString length] == 0)
{
[ReusedMethods ShowAllertWithTitle:@"app name" message:@"Enter Password" delegate:nil cancelTitle:@"OK" otherTitle:nil tag:0];
[passwordTextField becomeFirstResponder];
}
else if(! [self validateEmail:emailTextField.text])
{
[ReusedMethods ShowAllertWithTitle:@"app name" message:@"Enter valid Email ID" delegate:nil cancelTitle:@"OK" otherTitle:nil tag:0];
[emailTextField becomeFirstResponder];
}
else //If satisfied all validations
{
PFQuery *query= [PFUser query]; //query for users
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error)
{
if (!error)
{
UserArrayObjects = objects;
BOOL isUserExist = NO;
for (PFObject *userObject in UserArrayObjects)
{
if([userNameTextField.text isEqualToString:[userObject objectForKey:@"username"]] || [userNameTextField.text isEqualToString:[userObject objectForKey:@"email"]] )
{
isUserExist = YES;
break;
}
}
if(!isUserExist)
{
[self signupNewUser];
}
else
{
[ReusedMethods ShowAllertWithTitle:@"app name" message:@"Signup failed! \nSomeone already has that username or email." delegate:nil cancelTitle:@"OK" otherTitle:nil tag:0];
}
}
else
{
[ReusedMethods ShowAllertWithTitle:@"app name" message:@"No network connection" delegate:nil cancelTitle:@"OK" otherTitle:nil tag:0];
}
}];
}
}
//提交注册
- (void)signupNewUser
{
{
{
NSString *usernameString = [userNameTextField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSString *passwordString = [passwordTextField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSString *emailString = [emailTextField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
//To check validations
if ([usernameString length] == 0)
{
[ReusedMethods ShowAllertWithTitle:@"app name" message:@"Enter Username" delegate:nil cancelTitle:@"OK" otherTitle:nil tag:0];
[userNameTextField becomeFirstResponder];
}
else if ([emailString length] == 0)
{
[ReusedMethods ShowAllertWithTitle:@"app name" message:@"Enter Email ID" delegate:nil cancelTitle:@"OK" otherTitle:nil tag:0];
[emailTextField becomeFirstResponder];
}
else if ([passwordString length] == 0)
{
[ReusedMethods ShowAllertWithTitle:@"app name" message:@"Enter Password" delegate:nil cancelTitle:@"OK" otherTitle:nil tag:0];
[passwordTextField becomeFirstResponder];
}
else if(! [self validateEmail:emailTextField.text])
{
[ReusedMethods ShowAllertWithTitle:@"app name" message:@"Enter valid Email ID" delegate:nil cancelTitle:@"OK" otherTitle:nil tag:0];
[emailTextField becomeFirstResponder];
}
else //If satisfied all validations
{
PFUser *user ;
if (skipUser)
user = [PFUser currentUser];
else
user= [PFUser user];
user.username = usernameString;
user.password = passwordString;
user.email = emailString;
[user setObject:@"regular" forKey:@"user_type"];
//Signup in background
[user signUpInBackgroundWithBlock:^(BOOL succeeded, NSError *error)
{
if (!error)
{
if(skipUser)
[ReusedMethods ShowAllertWithTitle:@"app name" message:@"Your anonymous account been merged with this user. Continue with more GGacts!" delegate:nil cancelTitle:@"OK" otherTitle:nil tag:0];
NewDeedViewController * newDeed = [[NewDeedViewController alloc] init];
[self.navigationController pushViewController:newDeed animated:YES];
}
else
{
[ReusedMethods ShowAllertWithTitle:@"app name" message:@"Signup failed! \nSomeone already has that username or email." delegate:nil cancelTitle:@"OK" otherTitle:nil tag:0];
}
}];
}
}
}
}
*