'setConfigSettings(FirebaseRemoteConfigSettings!): Unit' 已弃用
'setConfigSettings(FirebaseRemoteConfigSettings!): Unit' is deprecated
将 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'
正在同步 Gradle,我收到警告:
'setConfigSettings(FirebaseRemoteConfigSettings!): Unit' is deprecated. Deprecated in Java
'setDeveloperModeEnabled(Boolean): FirebaseRemoteConfigSettings.Builder!' is deprecated. Deprecated in Java
在这些行中:
//Setting Developer Mode enabled to fast retrieve the values
firebaseRemoteConfig.setConfigSettings(
FirebaseRemoteConfigSettings.Builder().setDeveloperModeEnabled(BuildConfig.DEBUG)
.build())
看完setConfigSettings and setDeveloperModeEnabled我把代码改成了:
firebaseRemoteConfig.setConfigSettingsAsync(
FirebaseRemoteConfigSettings.Builder().setMinimumFetchIntervalInSeconds(3600L)
.build())
升级到 com.google.firebase:firebase-config:19.0.0
后,方法 setDefaults 也被弃用。将其替换为 setDefaultsAsync
.
在应用程序的第一个 运行 中,firebaseRemoteConfig
不会获取数据并将 return 默认值 。要获取实际值并缓存它们,请参阅 Android Firebase Remote Config initial fetch does not return value.
您可以使用 TimeUnit.HOURS.toSeconds(12)
之类的时间代替 3600L
(由@ConcernedHobbit 提议)。
为了补充 CoolMind 的回答,我发现您在设置最小获取间隔 (setMinimumFetchIntervalInSeconds) 时有(至少)两个选项。您可以按照 CoolMind 在构建 remoteConfig 对象(在 Kotlin 中)时所说的那样做:
firebaseRemoteConfig.setConfigSettingsAsync(
FirebaseRemoteConfigSettings.Builder()
.setMinimumFetchIntervalInSeconds(TimeUnit.HOURS.toSeconds(12))
.build())
或者您可以将获取命令中的值设置为提供的参数。这个例子也在 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
}
将 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'
正在同步 Gradle,我收到警告:
'setConfigSettings(FirebaseRemoteConfigSettings!): Unit' is deprecated. Deprecated in Java
'setDeveloperModeEnabled(Boolean): FirebaseRemoteConfigSettings.Builder!' is deprecated. Deprecated in Java
在这些行中:
//Setting Developer Mode enabled to fast retrieve the values
firebaseRemoteConfig.setConfigSettings(
FirebaseRemoteConfigSettings.Builder().setDeveloperModeEnabled(BuildConfig.DEBUG)
.build())
看完setConfigSettings and setDeveloperModeEnabled我把代码改成了:
firebaseRemoteConfig.setConfigSettingsAsync(
FirebaseRemoteConfigSettings.Builder().setMinimumFetchIntervalInSeconds(3600L)
.build())
升级到 com.google.firebase:firebase-config:19.0.0
后,方法 setDefaults 也被弃用。将其替换为 setDefaultsAsync
.
在应用程序的第一个 运行 中,firebaseRemoteConfig
不会获取数据并将 return 默认值 。要获取实际值并缓存它们,请参阅 Android Firebase Remote Config initial fetch does not return value.
您可以使用 TimeUnit.HOURS.toSeconds(12)
之类的时间代替 3600L
(由@ConcernedHobbit 提议)。
为了补充 CoolMind 的回答,我发现您在设置最小获取间隔 (setMinimumFetchIntervalInSeconds) 时有(至少)两个选项。您可以按照 CoolMind 在构建 remoteConfig 对象(在 Kotlin 中)时所说的那样做:
firebaseRemoteConfig.setConfigSettingsAsync(
FirebaseRemoteConfigSettings.Builder()
.setMinimumFetchIntervalInSeconds(TimeUnit.HOURS.toSeconds(12))
.build())
或者您可以将获取命令中的值设置为提供的参数。这个例子也在 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
}