Получение сообщений чата, хранящихся в пользовательской таблице quickblox

Я храню сообщения чата пользователя в пользовательской таблице. И я хочу получить сообщения между двумя пользователями. Пока я использую следующий код

NSNumber *user_id, *user2_id;
...
//chatMessages = [dict valueForKey:@"items"];
NSMutableDictionary *getRequest = [NSMutableDictionary dictionary];
[getRequest setObject:@"created_at" forKey:@"sort_asc"];
[getRequest setObject:[NSArray arrayWithObjects:user_id,user2_id, nil] forKey:@"user_id[in]"];
[getRequest setObject:[NSArray arrayWithObjects:user2_id,user_id, nil] forKey:@"receiver_id[in]"];

[QBCustomObjects objectsWithClassName:@"Chat" extendedRequest:getRequest delegate:self];

но это дает какой-то странный результат. В SQL я бы попробовал

WHERE (user_id='firstUser' AND receiver_id='anotherUser') or (user_id='anotherUser' AND receiver_id='firstUser')

но я не понимаю, как я могу спросить то же самое с QuickBlox.


person yakki    schedule 29.01.2014    source источник


Ответы (1)


Вы можете попробовать следующий getRequest:

 NSMutableDictionary *getRequest = [NSMutableDictionary dictionary];  
 [getRequest setObject:@"created_at" forKey:@"sort_asc"];
 NSArray *users = @[@(2000), @(1992)];
 [getRequest setObject:users forKey:@"receiver[in]"];  
 [getRequest setObject:users forKey:@"sender[in]"];
 [QBCustomObjects objectsWithClassName:@"Chat" extendedRequest:getRequest delegate:self];

В этом случае я получаю все сообщения между пользователями с id 2000 и 1992.

UPD: теперь вроде правильно. (Попробуйте передать тот же массив идентификаторов пользователей в getRequest)

person frankWhite    schedule 29.01.2014
comment
Это приводит к getRequest со следующим содержимым: { "receiver_id[or]" = 797975; "sort_asc" = "created_at"; "user_id[or]" = 797975; } и запрос возвращает все сообщения, отправленные пользователем 797975 или полученные им. - person yakki; 30.01.2014
comment
Извините, я ошибся с переопределением ключей словаря и операторов поиска. Обновить ответ - person frankWhite; 30.01.2014
comment
Это именно то, что я написал с самого начала. И это работает. Похоже, возникли проблемы с данными, хранящимися в таблице чата. Спасибо за ваш ответ) - person yakki; 30.01.2014