我尝试通过将开发人员模式设置为false
来为发布模式设置firebase远程配置。但是,如果缓存到期时间小于3000(可能会少一点,通过实验确定)秒,则无法获取数据。它抛出FirebaseRemoteConfigFetchThrottledException
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
.setDeveloperModeEnabled(false)
.build();
使用.setDeveloperModeEnabled(true)
,它允许我设置任何时间甚至0并且运行良好。
这是整个大块头:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
.setDeveloperModeEnabled(false)
.build();
mFirebaseRemoteConfig.setConfigSettings(configSettings);
mFirebaseRemoteConfig.setDefaults(R.xml.remote_config_defaults);
mFirebaseRemoteConfig.fetch(CACHE_EXPIRATION)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Log.i("info32", "remote config succeeded");
mFirebaseRemoteConfig.activateFetched();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
Log.i("info32", "remote config failed");
}
});
}
}, 0);
你能解释一下这是什么问题吗?
答案 0 :(得分:17)
远程配置实现客户端限制,以防止错误或恶意客户端使用高频获取请求爆炸Firebase服务器。一位用户报告限制是每小时五次请求。我没有在任何地方找到限制,尽管我已经确认五次快速提取将激活限制。
the documentation中解释了配置值的缓存。由于限制限制,您发布的应用程序无法立即看到远程配置值的更改。将使用缓存值,直到允许下一次提取。默认缓存过期时间为12小时。