当使用自定义 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 控制台的快照所示
因此,当您尝试检索 isAccepted 值时 它会返回默认值,在本例中为 false 。如果默认值为 null,则返回 null 值
我的 logcat 的快照对此进行了说明
Firestore 使用 Java Bean 约定 在 Java 类和数据库中的 JSON 之间映射属性。
在 Java Bean 中,布尔字段/方法上的
is
前缀表示布尔属性。因此,您的 isAccepted
映射到名为 accepted
的 JSON 属性这一事实是预期的。
如果您想控制 Firebase 在 JSON 映射中使用的名称,您可以使用
@PropertyName("isAccepted")
注释字段/方法。