gpt4 book ai didi

android - Firestore 时间戳为空

转载 作者:太空狗 更新时间:2023-10-29 15:44:23 26 4
gpt4 key购买 nike

我在我的 android 项目中使用 firestore,一切正常。但昨天从文档快照获取时间戳值时出现问题。

if (documentChange.getType() == DocumentChange.Type.ADDED) { 
Map<String, Object> stringObjectMap = documentChange.getDocument().getData();
Date date = (Date) stringObjectMap.get("timestamp"); }

这是我的收藏文件之一。

 id : "25",
message : "This is my message",
timestamp : December 11, 2017 at 10:39:12 PM UTC+5, \\This is Firebase FieldValue.serverTimestamp()
username : "Temp"

除了时间戳,我从文档中获取了所有内容。

最佳答案

如果您在从同一客户端写入后看到此 ADDED 事件具有空时间戳,这是预期的行为。

当您使用服务器时间戳编写时,您将收到两个事件:

  1. 确认文档写入本地缓存的初始事件。 此时时间戳为null 因为服务器还没有设置
  2. 服务器设置时间戳的第二个事件 客户已经观察到变化。

我们正在开发一个 API 来使这种行为可配置,但现在您需要处理这种情况。


编辑您现在可以控制此行为。

DocumentSnapshot snap = ...

// One of ESTIMATE, NONE, or PREVIOUS
DocumentSnapshot.ServerTimestampBehavior behavior = ...

Date date = snap.getDate("fieldName", behavior);

以前的行为(在未知时返回 null)等同于新 API 中的 NONE。有关详细信息,请参阅 JavaDoc: https://firebase.google.com/docs/reference/android/com/google/firebase/firestore/DocumentSnapshot.ServerTimestampBehavior

关于android - Firestore 时间戳为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47771044/

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