android - Firebase 中与远程配置相关的缓存是什么?
问题描述
我在 Firebase 中得到了远程配置的概念,但是在fetch()
实例上调用方法时,例如FirebaseRemoteConfig
:
mFirebaseRemoteConfig.fetch(3600)
必须像这里一样通过缓存过期时间3600
。但我的问题是,为什么必须在方法中通过缓存过期fetch()
?方法中缓存过期有什么用fetch()
?这个throttle
术语与什么有关fetch
?
我已经浏览了这个文档https://firebase.google.com/docs/remote-config/android#caching但我没有得到关于缓存在使用FirerbaseRemoteConfig获取数据中的作用的详细信息。
解决方案
通过调用fetch
您的应用程序,您可以确保检索到新的配置值(如果有)。从服务器检索远程配置是一项相对昂贵的操作,因此 API 进行了优化以限制刷新值的频率。在这些刷新之间,最后一个已知值(可能是您硬编码的值,或者最后从服务器检索的值)保存在设备缓存中。
有两个重载fetch
,一个没有参数,一个有一个名为 的参数cacheExpirationSeconds
。后者的文档说:
如果缓存中的数据在多秒前被提取,则此方法将返回缓存数据。如果没有,将尝试从远程配置服务器获取。
所以这意味着如果远程配置被检索到的时间少于cacheExpirationSeconds
之前,这个调用将继续使用它已经拥有的值。如果这些值被检索得比cacheExpirationSeconds
以前多,这将获取新值。
此方法使用 12 小时的默认缓存过期时间。
所以调用这个版本就相当于调用fetch(12*60*60)
.
推荐阅读
- ios - Flickr API 返回的农场值无效
- html - 如何在不使用表格的情况下将图像添加到 HTML/CSS 日历?
- javascript - 数组未清空
- sql - 如何在第二行sql server中传递第一行列值一些列?
- node.js - 将它们作为查询传递给model.find()时,如何忽略带有空字符串的值?
- java - 如何在 Excel 文件中添加新行?
- javascript - 在 javascript 迷宫中显示数组
- java - 使用不带 ssl 的 appassets.androidplatform.net(用于通过 http 发送 ajax 请求)
- laravel - 当我有大量数据时,为什么我的数据表会起作用?
- python - PySpark 铸造混乱 - 尽管没有抱怨铸造,但列没有铸造成 Double