对的,本想可以用lastMessageAt来判断是否为空消息,但实际也不行。

我们还可以给 AVIMConversation 来加一个方法 hasMessages(判断该对话中是否有消息),帮用户做判断,等大家都切到这个 API 了,我们就可以改掉 lm 的默认值了。

hasMessages() 只能在App获取到结果后使用,希望能在 查询阶段(query condition)就把空会话过滤掉;这样 query limit参数才能更有意义。

大家好,lm 默认为空的改动已经上线,请实验一下

控制台显示的已改,但是客户端sdk输出的还是没变

你好,我测试时没问题的。
请问你的代码是怎么写的?
新上线的这个功能不影响老的数据,老数据 lm 字段还是会有值的。

我这边是控制台和客户端都OK。

我是Android。

客户端如何设置查询条件,过滤掉lm为空的会话?

AVIMConversationQuery query = client.getQuery();
query.whereNotEqualsTo("lm", null);

不行。

在测试查询条件时候,发现一个bug, 在这里贴一下,希望引起注意。

你好,你的情况我没办法复现,请提供一个可以复现的 Demo。

App里 AVIMConversationQuery如何设置查询条件,过滤掉lm为空的数据?

试了几种方式都不行。

也特别需要这个。AVIMConversationQuery 如何设置条件

你好,请先加上 avimConversationQuery.whereNotEqualsTo("lm",""); 判断条件。抄送 @molon

thx,我试下。
我刚才搞出来用这个判断也成。
[q whereKey:@"lm" greaterThan:[NSDate dateWithTimeIntervalSince1970:0]];
不过可能由于以前的时候lm初始是和createdAt一样的脏数据还是过滤不了,如果可以的话,有个能判断两个key值是否一样的查询就好了。

不好意思 ,请忽略这个回复

同时设定 mlm, lm就不起作用,返回了所有包含成员 6 的数据:

query.whereEqualTo("m", "6");
query.whereNotEqualsTo("lm", ""); // 不起作用

请问这个问题,现在有任何进展吗?我测试看来,似乎没有好的办法可以过滤掉。