故障排除
如果您遇到缓存失效,请检查您的缓存大小和淘汰策略。一些记录可能已被从缓存中删除。增加缓存大小和/或保留期将有助于更一致地命中您的缓存。
如果您仍然遇到缓存失效,您可以将缓存内容导出。
val dump = apolloClient.apolloStore.dump()NormalizedCache.prettifyDump(dump)
确保在转储中无数据重复。如果是这样,可能意味着某些对象有一个错误的CacheKey
。确保提供一个可以在 CacheKeyResolver
上工作的图 上的 . 所有的对象都应该有一个唯一且稳定的 ID。这意味着无论对象在图中的什么路径,ID 都应该是相同的。这也意味着您必须在查询中使用该标识符 字段,以便能够从 CacheKeyResolver
中使用。
最后,确保设计您的查询以便可以重复使用 字段。缓存中 查询 的单个缺失字段将触发网络获取。有时在初期查询额外字段可能是有用的,以便它可以在后续查询中被重复使用。