我已经设置了最小间隔为0时,在关机模式。目前我做什么来获取新的数据是通过清除应用程序存储第一次启动应用程序之前。
下面是我的代码:
private fun initRemoteConfig() {
remoteConfig = FirebaseRemoteConfig.getInstance()
configSettings = FirebaseRemoteConfigSettings.Builder()
.setMinimumFetchIntervalInSeconds(if (BuildConfig.DEBUG) 0 else 3600)
.build()
remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)
fetch()
}
private fun fetch() {
remoteConfig.fetchAndActivate()
.addOnCompleteListener {
if (it.isSuccessful) {
val updated = it.result
Logger.d(TAG, "Config params updated: $updated. Fetch and activate succeeded") // updated = false
checkVersion()
} else {
Logger.d(TAG, "Fetch failed")
}
}
}
字符串
6条答案
按热度按时间pgpifvop1#
试试这个
字符串
vuktfyat2#
我将尝试阐明为什么用
fetch
和activate
替换fetchAndActivate
可以工作。原因是
fetchAndActivate
函数后面的远程配置缓存。它缓存新数据一段时间。该时间默认为-1,可能意味着永远(不确定,但可能意味着1天,或沿着这些行的沿着)。当数据已经被缓存时,它甚至不会再次尝试获取它们。因此,看起来好像它不工作。当你调用
fetch(0)
时,它将缓存时间设置为0秒。这就是为什么它每次都会获取新的远程配置值的原因。
ycggw6v23#
我将代码从
fetchAndActivate
更改为fetch
,它似乎按预期工作。我现在正在从Firebase获取新数据。下面是我更新的代码:
字符串
h4cxqtbf4#
在开发的早期阶段,有一种方法可以用来测试。它对我很有效。如果你参考下面的代码和Google Doc,会很有帮助。
您可以通过“remoteConfig.lastFetchTime”估计与服务器通信的时间。
字符串
在应用开发过程中,如果您没有使用实时远程配置(我们建议您使用),您可能希望非常频繁地(每小时多次)获取和激活远程配置,以便在开发和测试应用时快速执行远程配置。为了适应最多10个开发人员的项目的快速迭代,您可以使用setConfigSettings()临时设置较低的最小获取间隔。
网址:https://firebase.google.com/docs/remote-config/get-started?platform=flutter#fetch-values
ekqde3dh5#
默认远程更新为43200000毫秒,即720分钟或12小时。建议使用默认值。
如果你想调试或使用一个新的值,你可以设置
字符串
重新启动您的应用,然后将其删除
zu0ti5jz6#
在我的例子中,我在fetchAndActivate之前调用onConfigUpdated函数解决了这个问题,正如文档在第7步中所建议的那样:
字符串
希望能帮到别人:)