【问题标题】:How to correctly define ID and DateTime fields in Firebase Firestore database?如何在 Firebase Firestore 数据库中正确定义 ID 和 DateTime 字段?
【发布时间】:2020-06-29 18:05:17
【问题描述】:

我是第一次使用 Firebase FireStore 数据库,我有以下问题。

我创建了一个日历集合。该集合将包含表示事件的文档,这些事件必须显示在由 Angular 应用程序实现的日历中。

所以我为这些文档定义了以下字段:

  • id:整数。它是特定文档\事件的唯一标识符。
  • 标题:字符串。这是活动的标题。
  • 开始日期时间:字符串。它指定了活动开始的日期和时间。
  • end_date_time:字符串。它指定事件结束的日期和时间。

在这里我有一些疑问:

  1. id 字段是必需的吗?据我所知,我将拥有文档 UID 来确保文档的唯一性。如果不强烈要求采用 id 字段可以方便地使用自动增量字段之类的东西吗? (我知道我必须以其他方式处理自动增量,因为 FireStore 不是关系数据库并且不会自动处理它)。例如,我认为将我的文档从第一个插入的文档排序到最后一个插入的文档可能很有用。

  2. 在我看来,FireStore 不处理 DateTime 字段(例如传统关系数据库所做的)。这个假设正确吗?如何正确处理我的 start_date_timeend_date_time 字段?这些字段必须包含我的 Angular 应用程序使用的日期时间吗?例如,我想我可以将其定义为 string 字段并将这些字段值作为 2020-07-20T07:00:00 表示特定日期和特定的时间。它是否可以被认为是解决问题的有效方法?

【问题讨论】:

    标签: firebase google-cloud-firestore nosql


    【解决方案1】:

    id 字段是必需的吗?

    不需要任何字段。 Firestore 是无模式的。文档唯一需要的是一个字符串 ID,它对于它所在的集合来说是唯一的。

    ID 不会自动递增。这并不像 Firestore 所要求的那样大规模扩展。如果您需要订购,您必须根据自己的需要自行定义。

    通常,您应该接受 Firebase 客户端 API 将为您生成的随机生成的 ID。排序通常使用文档中的字段来定义。

    在我看来,FireStore 不处理 DateTime 字段

    Firestore 具有时间戳字段类型,可将时刻存储到纳秒级精度。无需存储格式化字符串,除非出于其他原因需要。

    【讨论】:

      猜你喜欢
      • 2020-11-23
      • 1970-01-01
      • 2016-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多