【问题标题】:Retrieving chat messages stored in custom table quickblox检索存储在自定义表 quickblox 中的聊天消息
【发布时间】:2014-01-29 14:17:45
【问题描述】:

我将用户聊天消息存储在自定义表中。我希望检索两个用户之间的消息。现在我正在使用以下代码

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 提出同样的问题。

【问题讨论】:

    标签: chat quickblox


    【解决方案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中传递相同用户的id数组)

    【讨论】:

    • 这导致 getRequest 包含以下内容:{ "receiver_id[or]" = 797975; "sort_asc" = "created_at"; "user_id[or]" = 797975; } 并且查询返回用户 797975 发送或接收的所有消息。
    • 抱歉,我在覆盖字典键和搜索运算符时出错了。更新答案
    • 这正是我从一开始就写的东西。它正在工作。似乎 Chat 表中存储的数据存在一些问题。谢谢你的回答)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 2014-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多