代码:
第一次登录后,触发这个方法,能够得到对应的数组,数量为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 来请求。
我们后来已经自己调整了一下,一直通过网络进行请求。谢谢您的回复。