【问题标题】:RemoteConfig Without Internet Giving Empty String没有 Internet 的 RemoteConfig 提供空字符串
【发布时间】:2025-12-15 16:30:01
【问题描述】:

我有这个类用于从 Firebase 获取远程配置。

internal object MyConfig {

    const val KEY = "test_key"

    private var remoteConfig: FirebaseRemoteConfig = FirebaseRemoteConfig.getInstance()

    init {
        val configSettings = FirebaseRemoteConfigSettings.Builder()
            .setMinimumFetchIntervalInSeconds(3600)
            .build()
        remoteConfig.setConfigSettingsAsync(configSettings)
        remoteConfig.fetchAndActivate()
    }

    fun getKey(): String {
        return mRemoteConfig.getString(KEY)
    }
}

这工作正常,但如果我在应用程序打开时没有互联网,那么密钥将是 ""。当我恢复互联网时,当我拨打getKey() 时,密钥仍然是""

我怎样才能做到,如果密钥以"" 的形式返回,那么该值不会存储在remoteConfig 中?

【问题讨论】:

    标签: android firebase kotlin firebase-remote-config


    【解决方案1】:

    没有针对单个键或值的设置或配置。当您从远程配置中获取一个值时,您每次都将获得相同的值,直到下一次获取可能使用来自服务器的新值更改它。提取完成后,它将包含来自服务器的所有当前值,如果提取失败则不包含任何值,并且永远不会包含不完整的值子集。

    当您的应用上线时,远程配置不会自动尝试获取新值。如果你想让它再次获取,你将不得不为此编写代码,这是很有可能的。

    【讨论】:

    • 如果我执行remoteConfig.fetchAndActivate() 之类的操作,我怎么知道它是否成功?我正在考虑检查它是否失败,然后当互联网恢复时再试一次。
    • 您可以按照文档中的说明检查对 fetchAndActivate() 的调用是否存在错误:firebase.google.com/docs/remote-config/use-config-android