什么是Firebase远程配置开发人员模式

时间:2019-05-07 09:15:10

标签: android firebase firebase-remote-config

我将Firebase Remote Config添加到应用程序,并且对.setMinimumFetchIntervalInSeconds(...).setDeveloperModeEnabled(true/false)的用途感到困惑。这些文档讨论的是开发人员模式,但我不确定他们是否清楚地解释了其实际功能。它必须与setMinimumFetchIntervalInSeconds一起使用还是可以单独使用?如果单独使用,它会做什么?

第二,我在应用程序的调试版本中测试我的测试布尔值,其值设置为5分钟或小时,但仍然总是在3秒内得到我的值。当我将setDeveloperModeEnabled设置为false或根本没有将FirebaseRemoteConfigSettings添加到我的实例时,我仍然没有观察到著名的节流异常,并且立即获得了我的值。基本上看来,我的缓存设置已被忽略,并且我总是从后端获取新数据,并且可以将缓存设置为所需的低水平。

1 个答案:

答案 0 :(得分:0)

setDeveloperModeEnabled()已过时。他们现在使用setMinimumFetchIntervalInSeconds()来设置缓存过期延迟。

检查此行的通讯座,并确保它是17.0.0版(截至今天)或更高版本:    实施'com.google.firebase:firebase-config:17.0.0'

Firebase对您可以进行的提取请求数量有一个配额。开发人员模式是一种使自己的设备可以随时获取而不受限制的方式,但是您不能在启用了开发人员模式的情况下发布您的应用程序(在该模式下,您仍然必须指定间隔)

如果您使用的是v17.0.0,请通过将cacheExpiration值更改为所需的值来使用此代码。

long cacheExpiration = 3600;
    mFirebaseRemoteConfig.setConfigSettingsAsync(new FirebaseRemoteConfigSettings.Builder()
                                                         .setMinimumFetchIntervalInSeconds(cacheExpiration)
                                                         .build());

mFirebaseRemoteConfig.setDefaults(R.xml.remote_config_defaults);

mFirebaseRemoteConfig.fetchAndActivate()
                .addOnCompleteListener(this, new OnCompleteListener<Boolean>() {
                    @Override
                    public void onComplete(@NonNull Task<Boolean> task) {
                        if (task.isSuccessful()) {
                            boolean updated = task.getResult();
                            Log.d(TAG, "Config params updated: " + updated);
                            Toast.makeText(MainActivity.this, "Fetch and activate succeeded " + updated,
                                    Toast.LENGTH_SHORT).show();
                        } else {
                            Toast.makeText(MainActivity.this, "Fetch failed",
                                    Toast.LENGTH_SHORT).show();
                        }
                        updateConfig();
                    }
                });

setDeveloperModeEnabled不再受支持,这也许就是为什么您没有观察到其行为的任何变化