FirebaseRemoteConfig fetchAndActivate 不更新新值

Mik*_*ike 5 android firebase-remote-config

在调试模式下,我已经将最小间隔设置为 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")
            }
        }

}
Run Code Online (Sandbox Code Playgroud)

VVB*_*VVB 5

尝试这个

private fun initRemoteConfig() {
  remoteConfig = FirebaseRemoteConfig.getInstance()
  configSettings = FirebaseRemoteConfigSettings.Builder()
    .setMinimumFetchIntervalInSeconds(if (BuildConfig.DEBUG) 0 else 3600)
    .build()
  remoteConfig.setConfigSettingsAsync(configSettings)  //You missed this line
  remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)
  fetch()
}

private fun fetch() {
  remoteConfig.fetchAndActivate()
    .addOnCompleteListener(this) { task ->
        if (task.isSuccessful) {
            val updated = task.result
            Logger.d(TAG, "Config params updated: $updated. Fetch and activate succeeded") // updated = false
            checkVersion()
        } else {
            Logger.d(TAG, "Fetch failed")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


Mik*_*ike 2

我将代码从 更改fetchAndActivatefetch,它似乎按预期工作。我现在正在从 Firebase 获取新数据。

这是我更新的代码:

private fun fetch() {
    val fetch = remoteConfig.fetch(if (BuildConfig.DEBUG) 0 else TimeUnit.HOURS.toSeconds(12))
    fetch.addOnCompleteListener {
        if (it.isSuccessful) {
            remoteConfig.activate()
            Logger.d(TAG, "Fetch and activate succeeded")

            checkVersion()
        } else {
            Logger.d(TAG, "Fetch failed")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)