我有这样的对象
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类型。
有人知道该怎么办吗?
答案 0 :(得分:0)
有趣的是,startTime字段被写入为map,但是endTime为null类型。
endTime
是null
,因为它在构造函数中被初始化为null
。
var endTime: DateTime? = null
如果需要服务器时间戳,请将字段的类型更改为Date,使用注释,并保留该字段未初始化,如以下帖子中我的回答所述:
如果您需要更新字段,请确保该字段的类型为supported data types in Firestore之一。