Как получить идентификатор пользователя из объектов запроса и отношений?

Я теряю голову над этим, просто не могу понять это.

В моем приложении есть текстовое поле и кнопка, с помощью которой вы можете указать свой номер телефона или просто номер (это не имеет значения) .

метод кнопки это

PFObject *addValues= [PFObject objectWithClassName:@"phoneNumber"];
[addValues setObject:phoneNumbers forKey:@"numbers"];
[addValues setObject:whoIsTheUser forKey:@"theUser"];
[addValues saveInBackground];

затем я добавляю еще одну кнопку, которая проверяет, вставил ли другой пользователь в поле тот же номер, что и первый пользователь, поэтому я выполняю запрос для этого, код прямо здесь:

PFQuery* numQuery = [PFQuery queryWithClassName:@"phoneNumber"];
[numQuery whereKey:@"numbers" equalTo:phoneNumbers];
[numQuery whereKey:@"theUser" notEqualTo:[PFUser currentUser]];
[numQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error){


    if(!error)
    {
       // send an alert view for data-has-been-sent 

        UIAlertView *messageForSending = [[UIAlertView alloc]initWithTitle:@"thank you" message:@"the details has been send" delegate:nil cancelButtonTitle:@"okay" otherButtonTitles:nil, nil ];
        [messageForSending show];


        for(PFObject *numObject in objects) {

            // checking how much objects did the query find ...

            if (objects.count > 1 ) {


                NSLog(@"yay we found %lu objects", (unsigned long)objects.count);

                // in the future i will handle those multiply objects somehow :D

            }else{

                // if there's 1 results i know it's going to show this message

             **// HOW CAN I CHECK WHAT'S THE OTHER PFUser ID IS ? AND HOW CAN I MAKE RELATIONSHIP WITH THE CURRENT PFUser ??**

                NSLog(@"yup there is a match");
                //NSLog(@"checking objects %lu", objects.count);
                NSLog(@" object names %@", objects);
                // showing alert message for success

                UIAlertView *successMessage = [[UIAlertView alloc]initWithTitle:@"THERE IS A           MATCH" message:@" we found a match, would u like to talk with him ?" delegate:nil            cancelButtonTitle:@"cancel" otherButtonTitles:@"yes", nil];
                [successMessage show];










            }



        }

    }
    else
    {
  // there's an error so i will show here in the future an UIAleart view for trying again.

        NSLog(@" big error !!!");

    }
}


 ];

Предполагается, что есть 1 совпадение, и оба пользователя поставили одно и то же число (вы можете увидеть в коде выше, я поставил ** для моего вопроса) . Как я могу создать код Отношения с текущим PFUser и новым Пользователем, которого я нашел в Объектах? Я хочу создать связь между ними двумя идентификаторами пользователей и поместить их в базу данных для анализа в качестве класса друзей. КСТАТИ. приведенный выше код работает, я создал двух пользователей и набрал 1234 для них обоих, и это работает:D - теперь все, что у меня осталось, это соединить их обоих пользователей.

Большое спасибо, ребята!,

1 ответ

Решение

В свой второй запрос кнопки, добавьте эту строку:

[numQuery includeKey:theUser];

Это обеспечит выборку объекта пользователя вместе с результатом. Затем вы можете получить этот пользовательский объект с помощью:

PFUser *otherUser = [objects lastObject]; // Assuming there was only 1 user in the result

Теперь у вас есть оба пользователя.

Затем, чтобы связать их, вам понадобится либо столбец на каждом пользовательском объекте с массивом других пользователей, которые являются друзьями, и обновите каждый из этих столбцов на обоих пользовательских объектах пользовательским объектом другого пользователя. Этот столбец должен быть массивом указателей.

Тем не менее, лучшим подходом является использование отдельного класса разбора для связи друзей. Я предполагаю, что у людей может быть несколько таких дружеских отношений. Может быть, это то, что ваш класс друзей для?

Другие вопросы по тегам