什么是与Firebase中的远程配置相关的缓存?

时间:2018-06-03 20:25:39

标签: android firebase firebase-remote-config

我在Firebase中获得了远程配置的概念,但是在实例fetch()上调用FirebaseRemoteConfig方法,如:

mFirebaseRemoteConfig.fetch(3600)  

必须传递缓存过期时间,因为它是3600。但我的问题是,为什么必须在fetch()方法中传递缓存过期fetch()方法中缓存过期的用途是什么?以及与throttle相关的fetch术语是什么? 我已经浏览了此文档https://firebase.google.com/docs/remote-config/android#caching,但在使用 FirerbaseRemoteConfig 时,我没有获得有关缓存在获取数据中的作用的详细信息。

1 个答案:

答案 0 :(得分:1)

通过在应用中调用fetch,可以确保检索到新的配置值(如果有)。从服务器检索远程配置是一项相对昂贵的操作,因此API会进行优化以限制值刷新的频率。在这些刷新之间,最后的已知值(可能是您硬编码的值,或最后从服务器检索到的值)保存在设备上的缓存中。

fetch有两个重载,一个没有参数,另一个带有cacheExpirationSeconds参数。 documentation for the latter说:

  

如果缓存中的数据的提取时间不超过这么多秒,则此方法将返回缓存的数据。如果没有,将尝试从远程配置服务器获取。

因此,这意味着如果远程配置的检索时间小于cacheExpirationSeconds,则此调用将继续使用已有的值。如果值的检索时间超过cacheExpirationSeconds,则会获取新值。

documentation for the parameterless overload of fetch()说:

  

此方法使用12小时的默认缓存过期。

所以调用此版本相当于调用fetch(12*60*60)