使用日期作为 Firestore 文档 ID?

Using a date as Firestore Document Id?

我有一个日记应用程序,我希望每天都有一个文档。我的问题是使用 ISO 8601 日期时间字符串作为文档 ID 是否是一个好习惯。因为每天只能有一个文档所以会是一个唯一的Id。

或者我应该将日期存储在文档中并使用随机文档 ID?什么是更好的选择?

我想做的一个查询是检查是否有具有特定日期(例如今天)的文档。如果是这样,我想获取这个文件,否则如果今天没有文件我想创建一个。

使用您希望唯一的值作为文档 ID 是确保唯一性的简单(并且在许多情况下是唯一的)方法。只要您的用例可以接受此类顺序键的吞吐量限制(此处似乎就是这种情况),它就是一种确保唯一性的简单好方法。

看起来不错,但是firebase does not recommend this。这是因为不建议使用增量文档 ID 名称。这可能是 Customer1、Customer2、... CustomerN,或者在您的案例中是日期。 10-31-21、11-1-21、11-2-21,... 是递增的。

另外,请注意他们的第二个建议:避免在文档 ID 中使用 / 正斜杠。

Or should I store the date in the document and use a random document Id? What would be a better choice?

我会选择后者。使用随机文档 ID,然后将日期存储在其中。

话虽这么说,最佳实践和最佳实践。它们不是规则。在你的情况下,如果使用日期作为文档 ID 更容易并且需要更少的读取,它可能是最好的选择。