故障排除
如果您遇到缓存未命中,请检查您的缓存大小和淘汰策略。一些记录可能已被从缓存中删除。增加缓存大小和/或保留期将有助于更一致地命中缓存。
如果您仍然遇到缓存未命中,您可以转储缓存内容
val dump = apolloClient.apolloStore.dump()println(NormalizedCache.prettifyDump(dump))
A石墨 ical 标准化缓存查看器 也可在Android Studio插件中使用。
确保在转储中没有任何数据重复。如果是这样,可能意味着一些对象有错误的CacheKey
。确保提供一个可以与你的graph一起工作的CacheKeyResolver
。所有对象都应具有唯一的稳定缓存ID。这意味着缓存ID应与对象在图中的路径无关。这也意味着您必须在查询中包含键field以能够在CacheKeyResolver
中使用它们。
最后,请确保设计您的查询以能够复用字段。缓存中单个查询缺失的字段将触发网络请求。有时在早期查询额外字段以便稍后查询复用它们可能会很有用。