【问题标题】:Firebase remote config cache expiration time in releaseFirebase 远程配置缓存过期时间
【发布时间】:2016-07-28 10:37:05
【问题描述】:

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

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

【问题讨论】:

  • 下面的博客文章链接可以回答您的所有问题。默认缓存时间为 12 小时。 setDeveloperModeEnabled(true) 在您开始从服务器端受到限制之前,最多只能用于 10 台设备。参考:firebase.googleblog.com/2017/01/…

标签: android firebase firebase-remote-config


【解决方案1】:

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

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

【讨论】:

  • 文档现在支持每小时 5 次请求的声明:“限制是从 SDK 内部完成的。在 SDK 开始限制并返回之前,应用程序可以在 60 分钟窗口内最多获取 5 次FirebaseRemoteConfigFetchThrottledException。”
  • 他们后来改变了主意:“在 SDK 版本 6.3.0 之前,限制是 60 分钟窗口内的 5 个获取请求(新版本有更多的许可限制)”
  • 您知道这些“60 分钟内的 5 次获取”是否计入所有设备中我的应用程序的所有调用中,还是计数器适用于每个安装了该应用程序的设备?
  • 我也想知道,有人知道吗?
猜你喜欢
  • 1970-01-01
  • 2018-08-26
  • 1970-01-01
  • 2017-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多