flutter查询会话列表的问题

即时通讯模块 , flutter查询会话后即使选择了includeLastMessage,有时候也没有最后一条消息,请问这个是为啥,怎么破,我是希望每次查询都可以看到会话的最后一条消息不论是不是最新消息。
@xiaoxu

你好,请问您运行在 iOS 还是 Android,能否提供下 SDK 版本号,我们来调查一下。

android ios都这样的,sdk:
leancloud_official_plugin: 1.0.0-beta.10
implementation 'cn.leancloud:storage-android:7.0.9'
//使用即时通信
implementation 'cn.leancloud:realtime-android:7.0.9'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'

implementation 'cn.leancloud:realtime-core:7.0.9'
implementation 'com.android.support:multidex:1.0.3'
implementation  'com.google.protobuf:protobuf-java:3.9.1'

您好,我这测试几次没能复现,能否麻烦您把复现的完整的日志粘贴一份给我们。

V/AudioManager(23435): querySoundEffectsEnabled...
D/LeancloudPlugin(23435): onMethodCall openClient, args:{r=false, clientId=5ff318061973ab4556841629, signRegistry={sessionOpen=false, conversation=false}}
I/PushService(23435): PushService#onStartCommand
D/LeancloudPlugin(23435): client open result: {clientId=5ff318061973ab4556841629}
D/LeancloudPlugin(23435): onMethodCall queryConversation, args:{clientId=5ff318061973ab4556841629, flag=2, limit=10, skip=0, sort=-updatedAt}

I/flutter (23435): ---- _handleResults isIncludeLastMessage : true
I/flutter (23435): ----_handleResults isIncludeLastMessage msg : null item {lm: {__type: Date, iso: 2021-01-05T05:05:43.628Z}, c: 5ebb65f4a406970b7cecfcbe, mu: [], m: [5ebb65f4a406970b7cecfcbe, 5ff318061973ab4556841629], create
dAt: null, conv_type: 1, unique: true, name: 5ebb65f4a406970b7cecfcbe&5ff318061973ab4556841629, attr: {imgSrcs: 5ebb65f4a406970b7cecfcbe=https://cdn.zexzcm.com/FgEBoB9rX5VeOud9DF2gfmsW3MaW+5ff318061973ab4556841629=https://third
wx.qlogo.cn/mmopen/vi_32/TwHAzhaRAVclTiaLnXDCibjoBWNgKeFpZr8mbvmgCbBOBQUfl5ic1bZJY1GibzkfibRjc6rpo2CQdVLBanWicclOBlPw/132, names: 5ebb65f4a406970b7cecfcbe=销销名片+5ff318061973ab4556841629=IP.Z}, tr: false, objectId: 5ff3f39495
211d5b77598f16, uniqueId: 0fa2217e7c4f74726c89ad073261f3c2, updatedAt: null}
I/flutter (23435): ---- _handleResults isIncludeLastMessage : true
I/flutter (23435): ----handleResults isIncludeLastMessage msg : null item {createdAt: null, temp: false, c: 5ff318061973ab4556841629, convtype: 1, unique: true, name: 5ff318061973ab4556841629&5ec34f161973ab0a3bc2a86b, attr: {
imgSrcs: 5ff318061973ab4556841629=https://thirdwx.qlogo.cn/mmopen/vi_32/TwHAzhaRAVclTiaLnXDCibjoBWNgKeFpZr8mbvmgCbBOBQUfl5ic1bZJY1GibzkfibRjc6rpo2CQdVLBanWicclOBlPw/132+5ec34f161973ab0a3bc2a86b=https://cdn.zexzcm.com/tmp_fb835a
a8447322e94ffa81f06a8d52af6054011e7117b57c.jpg, names: 5ff318061973ab4556841629=IP.Z+5ec34f161973ab0a3bc2a86b=张绪德}, m: [5ec34f161973ab0a3bc2a86b, 5ff318061973ab4556841629], tr: false, objectId: 5ff6721095211d5b7747232d, uniq
ueId: bc704ffbde6343aab44c9a4ef7f5bc45, updatedAt: null}

这是相应的日志

我在你们的query.dart里加了一些日志,也显示没有获取最后一条消息,实际是5分钟前还可以有最后一条消息

您上面日志中打印了的是 true ?
您不需要去管 query.dart。您如果在 Android 端运行,需要下面这样打开调试日志:

//开启调试日志
AVOSCloud.setLogLevel(AVLogger.Level.DEBUG);

另外,您是怎么查询的 LastMessage,每次查询的代码一致吗,能都粘贴出来看一下。

这是我的代码,每次查询都是一样的
D/AVStandardWebSocketClient( 7552): client(cn.leancloud.websocket.AVStandardWebSocketClient@a087122) uplink : cmd: login
D/AVStandardWebSocketClient( 7552): appId: "30VzLczXR4XmGmDwNuiRdxeJ-gzGzoHsz"
D/AVStandardWebSocketClient( 7552): installationId: "7a2acbd9ee4d0274e1930b502fffadf9"
D/AVStandardWebSocketClient( 7552): loginMessage {
D/AVStandardWebSocketClient( 7552): systemInfo {
D/AVStandardWebSocketClient( 7552): deviceType: android
D/AVStandardWebSocketClient( 7552): osVersion {
D/AVStandardWebSocketClient( 7552): build: "HUAWEI/HUAWEI/HMA-AL00"
D/AVStandardWebSocketClient( 7552): }
D/AVStandardWebSocketClient( 7552): androidVersion {
D/AVStandardWebSocketClient( 7552): codename: "REL"
D/AVStandardWebSocketClient( 7552): apiLevel: "29"
D/AVStandardWebSocketClient( 7552): }
D/AVStandardWebSocketClient( 7552): isEmulator: false
D/AVStandardWebSocketClient( 7552): }
D/AVStandardWebSocketClient( 7552): }
D/PushService( 7552): processIMRequests...
D/PushService( 7552): processIMRequestsFromClient...
D/AVConnectionManager( 7552): client(cn.leancloud.websocket.AVStandardWebSocketClient@a087122) downlink: cmd: loggedin
D/AVConnectionManager( 7552): appId: "30VzLczXR4XmGmDwNuiRdxeJ-gzGzoHsz"
D/AVConnectionManager( 7552): installationId: "7a2acbd9ee4d0274e1930b502fffadf9"
D/AVConnectionManager( 7552): service: 0
D/AVConnectionManager( 7552): loggedinMessage {
D/AVConnectionManager( 7552): pushDisabled: false
D/AVConnectionManager( 7552): }
D/DefaultSignatureFactory( 7552): not found session signature factory for clientId: 5ff318061973ab4556841629
D/AVStandardWebSocketClient( 7552): client(cn.leancloud.websocket.AVStandardWebSocketClient@a087122) uplink : cmd: session
D/AVStandardWebSocketClient( 7552): op: open
D/AVStandardWebSocketClient( 7552): appId: "30VzLczXR4XmGmDwNuiRdxeJ-gzGzoHsz"
D/AVStandardWebSocketClient( 7552): peerId: "5ff318061973ab4556841629"
D/AVStandardWebSocketClient( 7552): i: -65534
D/AVStandardWebSocketClient( 7552): sessionMessage {
D/AVStandardWebSocketClient( 7552): ua: "LeanCloud-Java-SDK/7.0.9"
D/AVStandardWebSocketClient( 7552): deviceId: "7a2acbd9ee4d0274e1930b502fffadf9"
D/AVStandardWebSocketClient( 7552): lastUnreadNotifTime: 1609836718115
D/AVStandardWebSocketClient( 7552): lastPatchTime: 1609836718981
D/AVStandardWebSocketClient( 7552): configBitmap: 47
D/AVStandardWebSocketClient( 7552): }
D/AVConnectionManager( 7552): client(cn.leancloud.websocket.AVStandardWebSocketClient@a087122) downlink: cmd: session
D/AVConnectionManager( 7552): op: opened
D/AVConnectionManager( 7552): appId: "30VzLczXR4XmGmDwNuiRdxeJ-gzGzoHsz"
D/AVConnectionManager( 7552): peerId: "5ff318061973ab4556841629"
D/AVConnectionManager( 7552): i: -65534
D/AVConnectionManager( 7552): service: 2
D/AVConnectionManager( 7552): serverTs: 1610098692781
D/AVConnectionManager( 7552): sessionMessage {
D/AVConnectionManager( 7552): st: "R4XmGmDwNuiRdxeJ-gzGzoHsz1973ab4556841629J69PTjgPQ0iNNsye7QPXng"
D/AVConnectionManager( 7552): stTtl: 17280
D/AVConnectionManager( 7552): }
D/AVDefaultConnectionListener( 7552): new message arriving. peerId=5ff318061973ab4556841629, requestId=-65534, command=0
D/AVDefaultConnectionListener( 7552): processSessionCommand. op=opened,requestKey=-65534
D/AndroidOperationTube( 7552): openClient get response. error:null
D/LeancloudPlugin( 7552): client open result: {clientId=5ff318061973ab4556841629}
D/LeancloudPlugin( 7552): onMethodCall queryConversation, args:{clientId=5ff318061973ab4556841629, flag=2, limit=10, skip=0, sort=-updatedAt}
D/QueryResultCache( 7552): try to get cache raw result for class:_conversation
D/QueryResultCache( 7552): try to get cache raw result for class:_conversation
D/PersistenceUtil( 7552): obtained read lock for file: /data/user/0/com.zexzcm.lovebusiness/cache/30VzLczXPaasKeyValueCache/23cc8ef1065da22229060cfeaad46294
D/PersistenceUtil( 7552): release read lock for file: /data/user/0/com.zexzcm.lovebusiness/cache/30VzLczXPaasKeyValueCache/23cc8ef1065da22229060cfeaad46294
D/QueryResultCache( 7552): cache file(key=23cc8ef1065da22229060cfeaad46294), content: ["5ff3f39495211d5b77598f16","5ff6721095211d5b7747232d"]
D/AVIMConversationsQuery( 7552): map function. input: ["5ff3f39495211d5b77598f16","5ff6721095211d5b7747232d"]
D/AVIMConversationsQuery( 7552): map function. output: 2

您好,感谢您的反馈,我们已经知道问题的原因了,我们会调研如何解决这个问题,有进展会再次回复您。

希望尽快吧,太坎坷了,这不是开发,这是折磨呀,找bug之旅 joy

你好,这个问题已经修复了,今天我们会发布一个新版本,稍等一会。

好的,还有个问题,就是flutter查询会话的排序,有时候不能按照(最新更新时间)排序

您好,还是麻烦您提出问题时,一并描述下运行的平台是 Android 还是 iOS,SDK 版本号,查询会话的代码和复现的日志,偶发还是必现,问题描述的越全面越好,便于省略多次问答,非常感谢您的理解。

你好,你们发布了吗