将数据类的对象添加到 Kotlin 的 Firestore 时如何添加 Firebase 时间戳?
Posted
技术标签:
【中文标题】将数据类的对象添加到 Kotlin 的 Firestore 时如何添加 Firebase 时间戳?【英文标题】:How to add Firebase Timestamp when adding an object of a data class to the Firestore in Kotlin? 【发布时间】:2021-10-06 13:09:40 【问题描述】:以下是我将产品详细信息添加到Firestore
的数据类示例,我想添加Firebase
时间戳以了解添加项目的时间。尽管我不知道该怎么做,但我尝试喜欢以下内容,但出现错误。
注意:我知道如何将时间戳添加到 Firestore
,并且我在添加 Hashmap
时使用了 "timestamp" to FieldValue.serverTimestamp()
。当它是我的数据类对象的一部分时,我遇到了麻烦。
@Parcelize
data class Product(
val user_id: String = "",
val mrp: String= "0.00",
val price: String = "0.00",
val description: String = "",
val stock_quantity: String = "",
val image: String = "",
val product_added_date: FieldValue? = null,
) : Parcelable
要添加到Firestore
的产品对象。
val product = Product(
FirestoreClass().getCurrentUserID(),
et_product_mrp.text.toString(),
et_product_price.text.toString(),
et_product_description.text.toString().trim it <= ' ' ,
et_product_quantity.text.toString().trim it <= ' ' ,
mProductImageURL!!,,
et_product_delivery_charge.text.toString().trim it <= ' ' ,
imageURL.size,
FieldValue.serverTimestamp(),
)
【问题讨论】:
这方面有什么帮助吗? 【参考方案1】:如果要使用Product
类的对象添加时间戳类型属性,请将类中的字段定义为Date类型并使用如下注解:
@ServerTimestamp
var product_added_date: Date? = null,
当您创建Product
类的对象时,无需设置日期。您不必将任何内容传递给构造函数。 Firebase 服务器将读取您的 product_added_date
字段,因为它是一个 ServerTimestamp(请参阅注释),并且它将相应地使用服务器时间戳填充该字段。
否则,创建一个 Map 并放置:
"product_added_date" to FieldValue.serverTimestamp()
【讨论】:
太棒了,解释得很好。它做得很好。我用它来添加时间戳并将其显示在我的应用程序中。只是好奇我是否可以以自定义格式取回它?假设我想将其显示为 dd/mm/yy。谢谢。 因为它是 Java Date 类型的属性你可以format it as you want.以上是关于将数据类的对象添加到 Kotlin 的 Firestore 时如何添加 Firebase 时间戳?的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin中数据类和单例类的实现和讲解面向对象编程接口的实现