Firebase Firestore:是否有@SerializedName的等价物?
我使用Firestore(来自Firebase)。由于我不理解的原因,我的一个类的变量没有以正确的名称保存(在Firestore中) 下面是一个示例类: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
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,我在那里找到了最后一个问题的原因: