Quickblox: можно ли удалить все настраиваемые объекты, созданные пользователем

Можно ли удалить все настраиваемые объекты определенного класса для текущего пользователя одним вызовом API?

Вызов может быть примерно таким:

[QBCustomObjects deleteObjectsForClassName:@"ClassName" delegate:self];

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

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

Пожалуйста, дайте мне знать, возможно ли это, и я что-то пропустил ... И любые советы о том, как сделать это наиболее эффективным способом с точки зрения пропускной способности и использования API, приветствуются.

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

(Я использую Quickblox iOS SDK: версия с последней фиксацией git: среда, 27 ноября, 18:52:20 2013 г.)


person Matti Vilola    schedule 12.12.2013    source источник


Ответы (1)


Вы можете удалить все объекты для определенного класса за 3 шага:

1) Получить все объекты по классу QBCustomObjects:

objectsWithClassName:extendedRequest:delegate:

2) Создайте массив, перебирая все элементы в цикле и собирая их ID элементов.

3) Выполнить удаление классом QBCustomObjects (и передать массив идентификаторов)

deleteObjectsWithIDs:className:delegate:

(Для получения дополнительных сведений о том, как использовать эти методы, посетите этот http://sdk.quickblox.com/ios/Classes/QBCustomObjects.html)

PS: не знаю, возможно, эта функция появится в SDK позже.

person frankWhite    schedule 12.12.2013
comment
Верное решение. Фактически только владелец записи может удалить свою запись. Другие пользователи не могут этого сделать. Вот почему QuickBlox не предоставляет [QBCustomObjects deleteObjectsForClassName: @ClassName delegate: self]; метод сейчас. - person Rubycon; 13.12.2013
comment
Спасибо @frankWhite за ваш ответ! Это тот процесс, который я делаю сейчас, на случай, если мне нужно очистить все элементы, плюс в дополнение к тому, что я сохраню все идентификаторы классов отдельно для пользователя для нескольких классов. Мне просто было интересно, можно ли сделать это проще, поскольку это неэффективно (много вызовов API туда и обратно, особенно при использовании разбиения на страницы для большого количества элементов) и сложный способ выполнения простых операций с базой данных. - person Matti Vilola; 13.12.2013
comment
Спасибо @Igor за комментарий. Разве не было бы полезно предоставить операцию для простого удаления всех записей владельца для определенного класса? Я согласен с тем, что он не должен предоставлять методы для удаления записей других пользователей. - person Matti Vilola; 13.12.2013
comment
Да, команда QuickBlox думает об этом. Хотелось удалить с фильтрами. - person Rubycon; 13.12.2013
comment
Приятно услышать! Эта функция, кстати, будет положительно отличать вас от других подобных сервисов, таких как Parse (в прошлый раз, когда я проверял, они также не предоставляли такой метод .. Я могу ошибаться). - person Matti Vilola; 14.12.2013
comment
Уважаемый @IgorKhomenko, были ли у вас мысли по поводу re: удалить с помощью фильтров с остальной командой QB? Это будет фантастическая функция для моего будущего приложения - некоторые пользователи в базе данных могут иметь от 2-4 тыс. До 5000 настраиваемых объектов, и я разрешаю им очищать / удалять свои данные. Это займет около 0,1 секунды для обработки каждого элемента, и в настоящее время, когда я удаляю их все по отдельности в дополнение к задержкам сетевой связи, общее время будет около 0,2 секунды на элемент, что в сумме составит 1000 секунд (15-17 минут). В настоящее время я проверяю, могу ли я использовать меньше объектов для каждого пользователя. - person Matti Vilola; 15.01.2014