Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase Firestore:是否有@SerializedName的等价物?_Firebase_Kotlin_Google Cloud Firestore - Fatal编程技术网

Firebase Firestore:是否有@SerializedName的等价物?

Firebase Firestore:是否有@SerializedName的等价物?,firebase,kotlin,google-cloud-firestore,Firebase,Kotlin,Google Cloud Firestore,我使用Firestore(来自Firebase)。由于我不理解的原因,我的一个类的变量没有以正确的名称保存(在Firestore中) 下面是一个示例类: data class ExampleClass( val id: String, val foo: String, val bar: String, val isEnabled: Bool) 在Firestore中保存此对象时,我对id、foo或bar没有问题。但是,isEnab

我使用Firestore(来自Firebase)。由于我不理解的原因,我的一个类的变量没有以正确的名称保存(在Firestore中)

下面是一个示例类:

data class ExampleClass(
        val id: String,
        val foo: String,
        val bar: String,
        val isEnabled: Bool)
在Firestore中保存此对象时,我对
id
foo
bar
没有问题。但是,
isEnabled
保存为
enabled
被删除了
,我知道没有任何原因

你们当中有人知道这是否正常吗?我想将值保存为
isEnabled
而不是
enabled

另外,是否可以在Firestore中为每个值指定一个“名称”?所以我可以强制将该值保存为“isEnabled”。我见过@PropertyName(),但它似乎没有我预期的效果


提前感谢

这是正常的、直观的。这是JavaBean类型对象序列化的方式。根据第8.3.2节,布尔属性忽略布尔getter方法名称上的“is”:

布尔属性

此外,对于布尔属性,我们允许 用于匹配模式的getter方法:

公共布尔值为()

可以提供此“isPropertyName”方法,而不是 “get”方法,也可以在 “获取”方法。无论哪种情况,如果 方法,然后我们将使用 “is”方法读取属性值。一个例子 布尔属性可能是:

公共布尔值isMarsupial()

公共空间有袋动物(布尔m)

在我看来,在布尔值上加上“is”前缀有点多余。如果你知道一个属性是一个布尔值,这意味着它隐式地“是”或“不是”其名称中的东西

但如果确实必须更改名称,则可以使用注释:

data class ExampleClass(
    val id: String,
    val foo: String,
    val bar: String,
    @PropertyName(value="isEnabled")
    val isEnabled: Bool
)

多谢,道格。现在一切都有意义了。但是@PropertyName对我不起作用:/Ok,我在那里找到了最后一个问题的原因: