首页 > 解决方案 > Firebase 中与远程配置相关的缓存是什么?

问题描述

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

mFirebaseRemoteConfig.fetch(3600)  

必须像这里一样通过缓存过期时间3600。但我的问题是,为什么必须在方法中通过缓存过期fetch()方法中缓存过期有什么用fetch()?这个throttle术语与什么有关fetch
我已经浏览了这个文档https://firebase.google.com/docs/remote-config/android#caching但我没有得到关于缓存在使用FirerbaseRemoteConfig获取数据中的作用的详细信息。

标签: androidfirebasefirebase-remote-config

解决方案


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

有两个重载fetch,一个没有参数,一个有一个名为 的参数cacheExpirationSeconds后者的文档说:

如果缓存中的数据在多秒前被提取,则此方法将返回缓存数据。如果没有,将尝试从远程配置服务器获取。

所以这意味着如果远程配置被检索到的时间少于cacheExpirationSeconds之前,这个调用将继续使用它已经拥有的值。如果这些值被检索得比cacheExpirationSeconds以前多,这将获取新值。

无参数重载的文档fetch()说:

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

所以调用这个版本就相当于调用fetch(12*60*60).


推荐阅读