【问题标题】:update null field to map Firestore更新空字段以映射 Firestore
【发布时间】:2019-07-27 17:57:13
【问题描述】:

我有这样的对象:

data class Task(var id: Int? = null,
 var cabinId: Int = 0,
 var startTime: DateTime,
 var endTime: DateTime? = null
)

当我写文件时,它完全没问题:

    db.collection("games").document(game.idForTitle)
        .set(game)
        .addOnSuccessListener { documentReference ->
            Log.d(TAG, "DocumentSnapshot written with ID: ${documentReference}")
        }
        .addOnFailureListener { e ->
            Log.w(TAG, "Error adding document", e)
        }

但是当我尝试更新它抛出的 endTime 字段时:

java.lang.IllegalArgumentException:无效数据。不支持的类型:org.joda.time.DateTime(在字段 endTime 中找到)

有趣的是 startTime 字段被写为 map,而 endTime 是 null 类型。

有人知道该怎么做吗?

【问题讨论】:

    标签: android kotlin google-cloud-firestore


    【解决方案1】:

    有趣的是startTime字段写成map,而endTime是null类型。

    endTime 是 null,因为它在构造函数中被初始化为 null。

    var endTime: DateTime? = null
    

    如果您需要服务器时间戳,请将字段类型更改为 Date 类型,使用注释并保持字段未初始化,如我在以下帖子中的回答中所述:

    如果您需要更新某个字段,请确保该字段的类型是 supported data types in Firestore 之一。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      相关资源
      最近更新 更多