Используйте PFQuery, чтобы получить всех PFUsers

Я пытаюсь запросить всех пользователей моего приложения и использую для этого PFQuery. Вот код, который я использую:

  PFQuery *query = [PFUser query];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    if (!error) {
        // The find succeeded. The first 100 objects are available in objects
        NSLog(@"%lu", (unsigned long)objects.count);
    } else {
        // Log details of the failure
        NSLog(@"Error: %@ %@", error, [error userInfo]);
    }
}];

Этот код работает, но получает только первые 100 пользователей. Когда я хочу получить все свои, кто-нибудь знает, как отредактировать этот или другой способ написать запрос, который получит всех пользователей?

Заранее спасибо.


person Community    schedule 13.08.2014    source источник


Ответы (2)


Вам нужно будет установить предел запроса, используя query.limit,, а также query.skip, чтобы пропустить пользователей, которых вы уже запросили. Если вы не хотите этого делать, вы можете написать и вызвать функцию облачного кода, которая вернет сразу всех пользователей.

person Jacob    schedule 13.08.2014
comment
Просто добавьте к этому, что максимальный лимит, который вы можете установить, составляет 1000, а максимальный, который вы можете пропустить, составляет 10 000. Как только вы превысите это количество пользователей, вам нужно будет подумать о других решениях (начиная с того, почему вам нужно загружать более 10 000 пользовательских объектов на стороне клиента!). - person Timothy Walters; 13.08.2014
comment
@TimothyWalters Спасибо, Тим! Я ответил со своего телефона, поэтому у меня не было времени все это добавить, поэтому я быстро упомянул облачный код. - person Jacob; 13.08.2014
comment
@Jacob Я понял, что загрузка всех даже 100 пользовательских данных на клиентской стороне занимает много времени. В настоящее время я работаю над отправкой push-уведомлений пользователям. И в основном я хочу проверить, добавил ли пользователь элемент в избранное и отправил ли он ему уведомление. Может ли код быть лучшим способом сделать это? И я бы хотел, чтобы он работал каждый день, скажем... Спасибо за вашу помощь. - person ; 14.08.2014
comment
@spenf Я бы задал для этого новый вопрос, потому что об этом вопросе уже позаботились :) - person Jacob; 14.08.2014

Вам нужно будет установить предел запроса, используя query.limit,

И тогда вам придется пропустить другие

person iqueqiorio    schedule 15.12.2014