【问题标题】:Drop "is" prefix for Firebase Firestore fields for Boolean Values删除布尔值的 Firebase Firestore 字段的“is”前缀
【发布时间】:2020-09-20 14:57:20
【问题描述】:

当使用自定义 Kotlin 对象作为 firestore drop '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)

【问题讨论】:

    标签: android firebase kotlin google-cloud-firestore


    【解决方案1】:

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

    在 Java Beans 中,布尔字段/方法上的 is 前缀表示布尔属性。因此,您的 isAccepted 映射到名为 accepted 的 JSON 属性这一事实是预期的。


    如果您想控制 Firebase 在其 JSON 映射中使用的名称,您可以使用 @PropertyName("isAccepted") 注释字段/方法。

    【讨论】:

    【解决方案2】:

    我在控制台上注意到“is”已被删除,如 firestore 控制台的此快照所示

    因此,当您尝试检索 isAccepted 值时它会返回默认值,在这种情况下为 false。如果默认值为null,则返回一个null值

    这在我的 logcat 快照中得到了说明

    【讨论】:

    • 这应该是问题的一部分(您可以编辑),而不是答案。
    • @AlexeyRomanov 你说得对,它应该是问题的一部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-08
    • 2022-01-07
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    相关资源
    最近更新 更多