繁体   English   中英

与匿名用户(iOS)重新尝试注册时PFUser失败-回答(以这种方式解决了错误解析)

[英]PFUser fails when re-trying signUp with anonymous user (iOS) - Answer (Parse Bug solved this way)

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,它似乎是最新的。

pasrse的答案是:听起来像个bug。 您可以使用错误工具打开新报告吗?

* //要使所有用户在“忘记密码”部分中检查是否为有效用户

-(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];
                     }
                 }];
            }
        }
    }
}

*

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM