【发布时间】:2018-07-06 14:18:09
【问题描述】:
我正在尝试使用 Firebase Firestore 在 Android 客户端中添加时间戳字段。
用于标记要使用服务器填充的日期字段的注释 时间戳。如果正在写入的 POJO 包含 null @ServerTimestamp-annotated 字段,它将被替换为 服务器生成的时间戳。
但是当我尝试时:
@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。
【问题讨论】:
-
您注释的是局部变量,而不是 POJO 字段。两者有很大区别。
-
通过该注释,您告诉 Firestore 转换,当使用 POJO 时,必须将 Store DB 中具有相同名称的字段从 Firestore tiemstamp 转换为最新。您必须先设置时间戳。 Firestore 不会自动设置时间戳,因为 Firestore 在创建时不知道应该何时设置时间戳?在更新?在特定领域写?看看阿里的答案
标签: java android firebase google-cloud-firestore