删除 Firebase Firestore 布尔值字段的“is”前缀

问题描述 投票:0回答:2

当使用自定义 Kotlin 对象作为 firestore 时,删除“is”前缀。它毁了我一整天。

data class UberRequest(val geoPoint: GeoPoint? = null,
                   
                   //don't use 'is' prefix on boolean properties
                   val isAccepted:Boolean = false,
                   @ServerTimestamp
                   val timestamp: Date? = null)

我在控制台上注意到“is”被删除,如 firestore 控制台的快照所示 enter image description here

因此,当您尝试检索 isAccepted 值时 它会返回默认值,在本例中为 false 。如果默认值为 null,则返回 null 值

我的 logcat 的快照对此进行了说明

enter image description here

android firebase kotlin google-cloud-firestore
2个回答
7
投票

Firestore 使用 Java Bean 约定 在 Java 类和数据库中的 JSON 之间映射属性。

在 Java Bean 中,布尔字段/方法上的

is
前缀表示布尔属性。因此,您的
isAccepted
映射到名为
accepted
的 JSON 属性这一事实是预期的。


如果您想控制 Firebase 在 JSON 映射中使用的名称,您可以使用

@PropertyName("isAccepted")
注释字段/方法。


2
投票

我在控制台上注意到“is”被删除,如 firestore 控制台的快照所示 enter image description here

因此,当您尝试检索 isAccepted 值时 它会返回默认值,在本例中为 false 。如果默认值为 null,则返回 null 值

我的 logcat 的快照对此进行了说明

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.