'setConfigSettings(FirebaseRemoteConfigSettings!):单位已弃用

Coo*_*ind 12 android firebase-remote-config

将Firebase库升级到

implementation "com.google.firebase:firebase-messaging:18.0.0"
implementation 'com.google.firebase:firebase-config:17.0.0'
implementation 'com.google.firebase:firebase-core:16.0.9'
Run Code Online (Sandbox Code Playgroud)

并同步Gradle,我得到警告:

'setConfigSettings(FirebaseRemoteConfigSettings!): Unit' is deprecated. Deprecated in Java
'setDeveloperModeEnabled(Boolean): FirebaseRemoteConfigSettings.Builder!' is deprecated. Deprecated in Java
Run Code Online (Sandbox Code Playgroud)

在这些行中:

//Setting Developer Mode enabled to fast retrieve the values
firebaseRemoteConfig.setConfigSettings(
    FirebaseRemoteConfigSettings.Builder().setDeveloperModeEnabled(BuildConfig.DEBUG)
        .build())
Run Code Online (Sandbox Code Playgroud)

Coo*_*ind 14

阅读setConfigSettingssetDeveloperModeEnabled之后,我将代码更改为:

firebaseRemoteConfig.setConfigSettingsAsync(
    FirebaseRemoteConfigSettings.Builder().setMinimumFetchIntervalInSeconds(3600L)
        .build())
Run Code Online (Sandbox Code Playgroud)

更新

升级到com.google.firebase:firebase-config:19.0.0方法后,setDefaults也被弃用。替换为setDefaultsAsync

  • @MartinJäkel,你知道,我没有尝试过该版本的库,但是之前(2018年)曾尝试过。因为`setConfigSettingsAsync`不依赖于开发/发布模式,所以我们可以对两个都使用一个常量(但是可以使用不同的常量)。正如我之前所了解的,`0L'不是一个好值,因为它会导致错误。我不记得他们了,但是可能同步太频繁了,最终根本不同步,或者在回调中失败了而不是成功了。 (2认同)
  • `setDeveloperModeEnabled` 与 `setMinimumFetchIntervalInSeconds` 究竟有何关系?它有什么作用?`setMinimumFetchIntervalInSeconds` 的默认值是多少? (2认同)

Con*_*bit 7

为了补充 CoolMind 的答案,我发现在设置最小获取间隔 (setMinimumFetchIntervalInSeconds) 时,您(至少)有两个选项。当您构建 remoteConfig 对象(在 Kotlin 中)时,您可以按照 CoolMind 所说的去做:

firebaseRemoteConfig.setConfigSettingsAsync(
    FirebaseRemoteConfigSettings.Builder()
        .setMinimumFetchIntervalInSeconds(TimeUnit.HOURS.toSeconds(12))
        .build())
Run Code Online (Sandbox Code Playgroud)

或者您可以将 fetch 命令中的值设置为提供的参数。这个例子也在 Kotlin 中,我已经扩展了我的代码以尝试清楚地说明发生了什么:

remoteConfig.setConfigSettingsAsync(FirebaseRemoteConfigSettings.Builder().build())

// Fetch the remote config values from the server at a certain rate. If we are in debug
// mode, fetch every time we create the app. Otherwise, fetch a new value ever X hours.
var minimumFetchInvervalInSeconds = 0
if (BuildConfig.DEBUG) { 
    minimumFetchInvervalInSeconds = 0 
} else { 
    minimumFetchIntervalInSeconds = TimeUnit.HOURS.toSeconds(12) 
}

val fetch: Task<Void> = remoteConfig.fetch()

fetch.addOnSuccessListener {
    remoteConfig.activate()
    // Update parameter method(s) would be here
}
Run Code Online (Sandbox Code Playgroud)