如何解决Firebase远程配置未在区域设置更改时更新
我的定义如下:
我首先使用设备的语言(从“设置”)设置为英语启动应用程序,然后加载lang-EN json。
如果我进入设备的“设置”,将语言更改为法语并重新启动应用程序,.fetch()
仍将返回lang-EN值。如果我清除了该应用程序的缓存并重新启动,则它将加载lang-FR值。
.fetch()
是否不获取所有远程配置参数并在本地决定向用户显示哪个?从功能上看,似乎.fetch()
仅在调用时获得仅与设备有关的参数值。要么在Firebase代码中存在错误……要么……我希望情况确实如此,我做错了事。
这是我初始化单例的方式。也许我想念什么?
public void initialize(Context applicationContext) {
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
.setMinimumFetchIntervalInSeconds(5 * 60 * 60)//5 hours
.build();
getConfig().setConfigSettingsAsync(configSettings);
}
是的,我在依赖项19.2.0
中具有远程配置sdk的最新版本
解决方法
fetch()
是不够的。
要从Remote Config后端获取参数值,请调用fetch()
方法。您在后端设置的任何值都将被提取并存储在Remote Config对象中。
要使获取的参数值可用于您的应用,请调用activate()
方法。
对于要在一次调用中获取和激活值的情况,可以使用fetchAndActivate()
请求从Remote Config后端获取值并将其提供给应用程序:
mFirebaseRemoteConfig.fetchAndActivate()
.addOnCompleteListener(this,new OnCompleteListener<Boolean>() {
@Override
public void onComplete(@NonNull Task<Boolean> task) {
if (task.isSuccessful()) {
boolean updated = task.getResult();
Log.d(TAG,"Config params updated: " + updated);
Toast.makeText(MainActivity.this,"Fetch and activate succeeded",Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this,"Fetch failed",Toast.LENGTH_SHORT).show();
}
displayWelcomeMessage();
}
});
由于这些更新的参数值会影响应用程序的行为和外观,因此应在确保用户流畅体验的同时(例如,用户下次打开应用程序时)激活获取的值
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。