代码:

第一次登录后,触发这个方法,能够得到对应的数组,数量为10,和后台查询出来的结果(在下图)一样
但是我第二次触发,返回的会话数组为空(就是上图中的内容)

下面是后台手动查询的结果:

查询当前用户的所有会话,第一次正常,后面全是返回空数组,请问这是什么原因?

我查看了源码,按方法名字理解,后面的请求应该是从缓存里拿
但是问题是无论是从缓存拿或者通过网络请求拿

只要调用了这个方法返回的会话结果都应该是统一的,而不是说第一次是正确的期待结果,后面就变成了空数组?

不明白,希望官方技术人员解释一下,这是bug还是独特的设计,如果是设计,目的是什么

你这是在 Android 里调用,还是在纯 Java 环境内调用?

如果是在 Java 环境下使用,因为 realtime-core 没有提供本地数据库缓存,所以 CACHE_xxx 的策略都是不可行的,你可以在query 之前设置 policy 为 NETWORK_ONLY,例如:

query.policy = AVQuery.CachePolicy.NETWORK_ONLY;
query.findInBackground(new AVIMConversationQueryCallback() {});

我们发布了 6.3.0 版本修复了这个问题,你可以升到最新版,或者老版本在 find 调用之前指定 NETWORK_ONLY 的 policy 来请求。

我们后来已经自己调整了一下,一直通过网络进行请求。
谢谢您的回复。