gpt4 book ai didi

java - 如何使用 Android 在 Firestore 中添加时间戳?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:54:56 25 4
gpt4 key购买 nike

我正在尝试使用 Firebase Firestore 在 Android 客户端中添加时间戳字段。

根据documentation :

Annotation used to mark a Date field to be populated with a server timestamp. If a POJO being written contains null for a @ServerTimestamp-annotated field, it will be replaced with a server-generated timestamp.

但是当我尝试的时候:

@ServerTimestamp
Date serverTime = null; // I tried both java.util.Date and java.sql.Date

//...

Map<String, Object> msg = new HashMap<>();
// ... more data
msg.put("timestamp", serverTime);

在 Cloud Firestore 数据库中,此字段始终为 null

最佳答案

这不是将时间和日期添加到 Cloud Firestore 数据库的正确方法。最佳做法是拥有一个模型类,您可以在其中添加类型为 Date 的日期字段以及注释。你的模型类应该是这样的:

import java.util.Date;

public class YourModelClass {
@ServerTimestamp
private Date date;

YourModelClass() {}

public Date getDate() {
return date;
}

public void setDate(Date date) {
this.date = date;
}
}

当您在 YourModelClass 类的对象上创建时,无需设置日期。 Firebase 服务器将读取您的 date 字段,因为它是一个 ServerTimestamp(请参阅注释),并且会相应地使用服务器时间戳填充该字段。

另一种方法是使用 FieldValue.serverTimestamp()像这样的方法:

Map<String, Object> map = new HashMap<>();
map.put("date", FieldValue.serverTimestamp());
docRef.update(map).addOnCompleteListener(new OnCompleteListener<Void>() {/* ... */}

关于java - 如何使用 Android 在 Firestore 中添加时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48474957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com