19

我正在尝试通过将开发人员模式设置为false. 但是缓存过期时间少于 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);

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

4

1 回答 1

30

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

配置值的缓存在文档中进行了说明。由于限制,您发布的应用程序不可能立即看到远程配置值的变化。将使用缓存的值,直到允许下一次提取。默认缓存到期时间为 12 小时。

于 2016-07-28T14:26:36.917 回答