Firebase 远程配置缓存在版本中的过期时间

Firebase remote config cache expiration time in release

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

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

Remote Config 实施客户端节流,以防止有漏洞或恶意的客户端使用高频提取请求攻击 Firebase 服务器。一位用户报告说限制是每小时五个请求。我没有在任何地方找到记录的限制,尽管我已经确认五次快速提取将激活限制。

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