试了下Javascript的SDK中的ConversationQuery的ascending(key)函数貌似不生效,我试了下ascending和descending,返回的结果始终都是一个,PHP的sdk返回的结果是正确排序后的结果。

var realtime = new AV.Realtime({
  appId: '7SJEiLaAEsDG51FpWXtiGStb-gzGzoHsz',
});

realtime.createIMClient('cc').then(function(jerry) {        
    var q = jerry.getQuery().startsWith('name', '3_').ascending('updatedAt').find().then(function(conversations){
      	conversations.map(function(conversation) {
      		console.log(conversation.lastMessageAt.toString(), conversation.name);
      	});
    }).catch(console.error.bind(console));
})

你好,请问使用的 realtime 版本是?

你好,我试一下

confirmed, 马上修复

fixed in v3.1.2

@leeyeh 关于js sdk的排序问题还有个问题需要您帮助解答。
我试了下js的排序函数,貌似按照name是可以排序的,但是如果按照conversation的其它一些属性没办法排序。
我现在要做的是顾问与用户一对多的私信,比如,我想顾问打开私信界面的时候,能够按照用户发信息的时间倒序列出来所有的会话。
目前我看按照updatedAt这个字段排序是不可行的,因为这个字段顾问回复了也会更新这个字段的值。
我想试着用unreadMessagesCount来排序,但是用conversationQuery找到的对话的unreadMessagesCount貌似数都为0,为什么呢?
另外,我能否用 用户自定义的conversation的attr的某一个属性来排序呢?

有个 lm 字段,代表 lastMessage 的时间,可以按照这个来进行排序。但是回复了也会更新。

unreadMessagesCount 是客户端的逻辑,这个值并不存在存储里,也无法进行排序。

用户自定义的conversation的attr的某一个属性来排序呢

可以。query.descending('attr.xxx')