【问题标题】:Is there a Firestore Timestamp in metadata for Document Creation?元数据中是否有用于文档创建的 Firestore 时间戳?
【发布时间】:2020-05-04 03:36:39
【问题描述】:

我想知道 Cloud Firestore 是否会在创建每个文档时在其元数据中添加时间戳,如果是,该元数据是否可用?

我知道我可以出于任意原因在文档中创建自己的时间戳,但我只对文档本身的创建时间感兴趣。

提前致谢

【问题讨论】:

  • 请注意,如果您真的不想在从前端创建文档时添加时间戳字段,正如 Alex 所解释的那样,您可以使用 Cloud Function 来执行此操作 (@987654322 @事件)。
  • 谢谢雷诺。这并不是说我不反对触发功能。只是我试图确定编写文档以建立排序的确切时间。将它放在云功能中不会为我提供此功能(即使用触发功能,它会在事后发生,并且可能的重试意味着它可能不准确)
  • 我明白你的要求!我只是提到另一种可能性:-)
  • 啊,不用担心雷诺。谢谢。

标签: firebase google-cloud-firestore timestamp metadata


【解决方案1】:

对于最新的 Beta 版 firestore,接受的答案实际上并不正确,您可以从元数据中访问创建日期,例如在 python 中是这样的:

doc.create_time

看看文档:https://cloud.google.com/firestore/docs/reference/rpc/google.firestore.v1beta1

【讨论】:

  • 这应该是公认的答案。如果您只需要输出,Firebase Firestore 在 v1 中提供 create_timeupdate_time 时间戳。 cloud.google.com/firestore/docs/reference/rpc/…
  • 这很好用,但我似乎无法在 Angular Firestore 中获得查询。
  • @Tawm - 在 Node 版本中,它是 doc.createTime
【解决方案2】:

我想知道 Firestore 是否在其元数据中为每个文档创建时间戳

不,它没有。

我知道我可以在文档中创建自己的时间戳

这是您应该继续使用的解决方案。在每个文档中添加创建时间戳作为字段。

2022 年 1 月 21 日编辑:

在 Android 中,您可以调用DocumentSnapshot.getMetadata() 方法或QuerySnapshot.getMetadata(),它们都返回SnapshotMetadata 类型的对象。当我编辑这个答案时,在这个类中有 no 方法返回一个时间戳。只有hasPendingWrites()isFromCache()

所以这取决于你使用的平台。

【讨论】:

  • 谢谢亚历克斯。你知道这个服务器时间戳()是由客户端还是服务器(数据库)生成的?
  • 服务器时间戳是在 Firebase 服务器上生成的。客户端仅生成文档 ID。
猜你喜欢
  • 1970-01-01
  • 2019-08-14
  • 1970-01-01
  • 1970-01-01
  • 2020-03-04
  • 1970-01-01
  • 2019-08-06
  • 2021-06-05
  • 2020-12-26
相关资源
最近更新 更多