首页 > 解决方案 > 在 Firestore 中保存日历数据的最佳方法是什么?

问题描述

我正在构建一个用于处理自定义日历和事件的角度组件。创建事件后,我将给定数据作为单个文档保存到 firestore 数据库。

文件样本:

 {
  "name" : "test event",
  "description" :"sample test event for check",
  "startdate":"8/12/2021",
  "enddate":"8/12/2021",
  "color":"#11111",
  "userid":"user1"
 }

因此,在创建每个事件时,类似的数据结构将保存为单独的文档。我们可以过滤带有日期范围的自定义日历,还支持在单个日历中显示多个用户事件。

但是使用上面的文档结构,当我们尝试获取大量数据时,会导致服务器的成本更高。如何以个人或其他方式组织这些数据?任何人都可以对此提出您的意见吗?

标签: javascriptfirebasegoogle-cloud-firestorecalendarcustomization

解决方案


这种结构应该适合用例,因为它不会达到每个文档的限制(在数组中存储事件可能会达到每个文档大小限制 1 MB),并且您可以轻松执行大多数查询。

如何以个人或其他方式组织这些数据?

您有userid文档中的字段,并且可以使用过滤用户事件.where("userid", "==", curUserId)。其他方法是使用子集合:

users -> {userId} -> events -> {eventId}
(col)     (doc)      (col)      (doc)

这样您就不必在每个文档中存储用户的 UID,因为它已经分组在子集合中。

当我们尝试获取大量数据时,会导致服务器成本增加

Firestore 费用完全取决于您的使用情况。如果您的应用程序有很多用户,那么成本会更高。


推荐阅读