gpt4 book ai didi

android - 如何使Apollo Android缓存无效?

转载 作者:行者123 更新时间:2023-12-02 13:42:24 27 4
gpt4 key购买 nike

这是我用于缓存的阿波罗客户端代码

val apolloSqlHelper = ApolloSqlHelper.create(context,"my_app")
val sqlNormalizedCacheFactory = SqlNormalizedCacheFactory(apolloSqlHelper)
val cacheKeyResolver = object: CacheKeyResolver(){
override fun fromFieldRecordSet(
field: ResponseField,
recordSet: MutableMap<String, Any>
): CacheKey {
return if (recordSet["__typename"] == "Repository") {
CacheKey.from(recordSet["id"] as String)
} else {
CacheKey.NO_KEY
}
}

override fun fromFieldArguments(
field: ResponseField,
variables: Operation.Variables
): CacheKey {
return CacheKey.NO_KEY
}
}

ApolloClient.builder().serverUrl(baseUrl)
.normalizedCache(sqlNormalizedCacheFactory,cacheKeyResolver)
.okHttpClient(okHttpClient).build()

我正在做一个查询,之后阿波罗会缓存我的结果,但是当向查询中添加更多数据时,我不明白如何根据结果是否更改来使缓存无效。如果结果没有变化,请从缓存中获取数据或获取新数据并更新缓存

最佳答案

我不需要手动使缓存无效。 Apollo Android为我处理

这段代码对我有用

apolloClient.query(MyQuery()).responseFetcher(ApolloResponseFetchers.NETWORK_FIRST)
ApolloResponseFetchers还提供各种选项,例如 CACHE_FIRSTCACHE_ONLY

关于android - 如何使Apollo Android缓存无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62227820/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com