Firebase远程配置缓存在发布时的到期时间

时间:2016-07-28 10:37:06

标签: android firebase firebase-remote-config

我尝试通过将开发人员模式设置为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);

你能解释一下这是什么问题吗?

1 个答案:

答案 0 :(得分:17)

远程配置实现客户端限制,以防止错误或恶意客户端使用高频获取请求爆炸Firebase服务器。一位用户报告限制是每小时五次请求。我没有在任何地方找到限制,尽管我已经确认五次快速提取将激活限制。

the documentation中解释了配置值的缓存。由于限制限制,您发布的应用程序无法立即看到远程配置值的更改。将使用缓存值,直到允许下一次提取。默认缓存过期时间为12小时。