在Firestore中保存日历数据的最佳方法是什么?



我正在构建一个angular组件来处理自定义日历和事件。一旦创建了事件,我将给定的数据作为单个文档保存到firestore数据库中。

文档示例:

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

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

但是使用上面的文档结构,当我们试图获取大量数据时,它会导致服务器的成本更高。我该如何以个人为基础组织这些数据呢?谁能说说你的看法?

这个结构应该是很好的用例,因为它不会达到任何每个文档的限制(在数组中存储事件可能达到每个文档1mb的大小限制),你可以很容易地执行大多数查询。

我如何以个人为基础组织这些数据?

文档中有userid字段,用户的事件可以使用.where("userid", "==", curUserId)进行过滤。另一种方法是使用子集合:

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

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

当我们试图获取大量数据时,它会导致服务器成本更高

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

相关内容

最新更新