javascript - 在 Firestore 中保存日历数据的最佳方法是什么?
问题描述
我正在构建一个用于处理自定义日历和事件的角度组件。创建事件后,我将给定数据作为单个文档保存到 firestore 数据库。
文件样本:
{
"name" : "test event",
"description" :"sample test event for check",
"startdate":"8/12/2021",
"enddate":"8/12/2021",
"color":"#11111",
"userid":"user1"
}
因此,在创建每个事件时,类似的数据结构将保存为单独的文档。我们可以过滤带有日期范围的自定义日历,还支持在单个日历中显示多个用户事件。
但是使用上面的文档结构,当我们尝试获取大量数据时,会导致服务器的成本更高。如何以个人或其他方式组织这些数据?任何人都可以对此提出您的意见吗?
解决方案
这种结构应该适合用例,因为它不会达到每个文档的限制(在数组中存储事件可能会达到每个文档大小限制 1 MB),并且您可以轻松执行大多数查询。
如何以个人或其他方式组织这些数据?
您有userid
文档中的字段,并且可以使用过滤用户事件.where("userid", "==", curUserId)
。其他方法是使用子集合:
users -> {userId} -> events -> {eventId}
(col) (doc) (col) (doc)
这样您就不必在每个文档中存储用户的 UID,因为它已经分组在子集合中。
当我们尝试获取大量数据时,会导致服务器成本增加
Firestore 费用完全取决于您的使用情况。如果您的应用程序有很多用户,那么成本会更高。
推荐阅读
- .net - 在 Blazor 组件中的 @ChildContent 上设置 CSS 类
- yocto - poky里面有什么操作系统分布?
- javascript - 如何动态地将侦听器添加到小部件列
- php - spl_autoload_register - 从数组中只加载一个类
- node.js - 有多个页面时如何使用axios获取所有响应数据?
- swift - 我希望系统报告不符合协议,但事实并非如此!为什么?
- h2 - 如何查看配置值
- javascript - 隐藏inapp浏览器上的地址栏反应原生而不使用webview
- ios - ios:如何检查应用程序与扩展程序上下文
- c# - 如何在没有按钮的情况下打开内容对话框单击从 c# 代码到 UWp 应用程序的 xaml 代码