【问题标题】:What is Firebase Remote Config Developer Mode什么是 Firebase 远程配置开发者模式
【发布时间】:2019-05-07 09:15:10
【问题描述】:

我正在将 Firebase 远程配置添加到应用程序中,但我对 .setMinimumFetchIntervalInSeconds(...) 和 .setDeveloperModeEnabled(true/false) 的用途感到困惑。文档讨论了开发人员模式,但我不确定他们是否清楚地解释了它的实际作用。是必须和setMinimumFetchIntervalInSeconds配合使用还是可以单独使用,如果单独使用,那它有什么作用呢?

其次,我在应用程序的调试版本中测试我的测试布尔值,值设置为 5 分钟或小时,但我总是在 3 秒内得到我的值。当我将 setDeveloperModeEnabled 设置为 false 或根本不将 FirebaseRemoteConfigSettings 添加到我的实例时,我仍然没有观察到著名的油门异常,我立即得到了我的值。它基本上看起来我的缓存设置被忽略了,我总是从后端获取新数据,我可以将缓存设置为我想要的最低值。

【问题讨论】:

    标签: android firebase firebase-remote-config


    【解决方案1】:

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

    检查您的 gradle 是否有此行,并确保其版本为 19.1.4(截至今天)或更新版本: implementation 'com.google.firebase:firebase-config:19.1.4'

    Firebase 对您可以发出的提取请求的数量设有配额。开发者模式是一种让您自己的设备能够不受限制地随时获取的方式,但您不能在启用开发者模式的情况下发布您的应用程序(您仍然需要指定时间间隔)

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

    long cacheExpiration = 3600;
        mFirebaseRemoteConfig.setConfigSettingsAsync(new FirebaseRemoteConfigSettings.Builder() 
           .setMinimumFetchIntervalInSeconds(cacheExpiration)
           .build());
    
    //** deprecated */
    //mFirebaseRemoteConfig.setDefaults(R.xml.remote_config_defaults);
    
    mFirebaseRemoteConfig.setDefaultsAsync(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 不再受支持,这可能就是您没有观察到其行为发生任何变化的原因

    【讨论】:

    • 有趣!你怎么知道 setDeveloperModeEnabled() 已被弃用?
    • Firebase Remote Config docs。如果您使用的是正确版本的 firebase,AndroidStudio 也应该将其标记为已弃用
    • @RedaHammoud:在这段代码中,你没有指定开发者模式。所以如果我们在生产应用程序中将 setMinimumFetchIntervalInSeconds() 设置为 10,那么 firebase 将如何知道它是开发者模式还是生产模式?
    • @adi: setMinimumFetchIntervalInSeconds(BuildConfig.DEBUG ? 0 : 300)
    • @frapeti:但是根据您的说法,我们自己检查调试模式并自己设置时间,但是,firebase 无法区分开发人员使用的是开发模式还是生产模式?
    猜你喜欢
    • 2019-06-14
    • 1970-01-01
    • 2011-06-18
    • 2017-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多