Firebase远程配置-检查值是否存在

Kel*_*dos 1 android firebase firebase-remote-config

我想在我的应用程序中为某些布尔值实现某种代理。逻辑如下:

  1. 我从后端收到一组值
  2. 我也在Firebase中设置了其中一些值
  3. 在应用程序中使用值时,我首先检查Firebase中是否存在该值

    3.1。如果存在,请使用Firebase值

    3.2。如果不存在,则取后端值

问题是-如何检查Firebase远程配置中是否存在该值?

car*_*eli 6

我找到了另一种方法,可能对其他人有用:

val rawValue = remoteConfig.getValue(key)
val exists = rawValue.source == FirebaseRemoteConfig.VALUE_SOURCE_REMOTE
Run Code Online (Sandbox Code Playgroud)

在这种情况下,exists仅当该值从远程返回(并且尚未设置为默认值或静态提供值)时才为真。接受的答案很容易出错,因为没有考虑空字符串是从远程返回的有效字符串的情况

这里是FirebaseRemoteConfigValue的文档


Kel*_*dos 5

我找到了解决方案:

火力远程配置获取所有值Strings,然后才将它们映射到其他类型的方便的方法,例如getBoolean()getLong()

因此,可以如下检查布尔值的存在:

String value = firebaseRemoteConfig.getString("someKey");

if(value.equals("true")){
    //The value exists and the value is true
} else if(value.equals("false")) {
    //The value exists and the value is false
} else if(value.equals("")) {
    //The value is not set in Firebase
}
Run Code Online (Sandbox Code Playgroud)

其他类型也是如此,即long在firebase上从getString()as 返回的值设置为64 "64"