我在Firebase中获得了远程配置的概念,但是在实例fetch()
上调用FirebaseRemoteConfig
方法,如:
mFirebaseRemoteConfig.fetch(3600)
必须传递缓存过期时间,因为它是3600
。但我的问题是,为什么必须在fetch()
方法中传递缓存过期? fetch()
方法中缓存过期的用途是什么?以及与throttle
相关的fetch
术语是什么?
我已经浏览了此文档https://firebase.google.com/docs/remote-config/android#caching,但在使用 FirerbaseRemoteConfig 时,我没有获得有关缓存在获取数据中的作用的详细信息。
答案 0 :(得分:1)
通过在应用中调用fetch
,可以确保检索到新的配置值(如果有)。从服务器检索远程配置是一项相对昂贵的操作,因此API会进行优化以限制值刷新的频率。在这些刷新之间,最后的已知值(可能是您硬编码的值,或最后从服务器检索到的值)保存在设备上的缓存中。
fetch
有两个重载,一个没有参数,另一个带有cacheExpirationSeconds
参数。 documentation for the latter说:
如果缓存中的数据的提取时间不超过这么多秒,则此方法将返回缓存的数据。如果没有,将尝试从远程配置服务器获取。
因此,这意味着如果远程配置的检索时间小于cacheExpirationSeconds
,则此调用将继续使用已有的值。如果值的检索时间超过cacheExpirationSeconds
,则会获取新值。
documentation for the parameterless overload of fetch()
说:
此方法使用12小时的默认缓存过期。
所以调用此版本相当于调用fetch(12*60*60)
。