Firebase Firestore 数据库结构
Posted
技术标签:
【中文标题】Firebase Firestore 数据库结构【英文标题】:Firebase Firestore database structure 【发布时间】:2019-11-01 12:03:54 【问题描述】:我正在使用 Flutter 和 Firebase 构建一个应用,并且想知道最好的 Firestore 数据库结构是什么。
我希望用户能够发布消息,然后通过帖子内容和发布者用户名进行搜索。
是否为用户创建一个集合,每个文档存储用户名和其他信息,并为帖子创建一个单独的集合,每个文档包含帖子和发布者的用户名?
万一帖子数量超过一百万或更多,查询这种海量收藏是否需要额外费用?
将每个用户的帖子存储为用户文档下的子集合是否更有意义?我相信这需要额外的读取操作来访问每个文档的子集合。如果我最终获得大量流量,这会更便宜还是更贵?
【问题讨论】:
【参考方案1】:查询这种海量集合是否需要额外费用?
从 Firestore 读取的成本和性能完全取决于您检索的数据量(文档数量及其大小),而不是集合中的文档数量。
但 Firestore 中的限制是您可以对“彼此接近”的数据执行的写入次数。这种故意模糊的定义意味着,如果数据自然适合这种情况(例如在您的情况下),将数据分布在单独的子集合中通常会更好地实现写入可扩展性。
要深入了解 Firestore 和数据建模权衡,请观看 Getting to know Cloud Firestore。
【讨论】:
以上是关于Firebase Firestore 数据库结构的主要内容,如果未能解决你的问题,请参考以下文章
渲染从 Firebase Firestore 映射的 React 组件
Firebase - 使用 Cloud Functions 定位特定的 Firestore 文档字段
约会应用程序 - 我需要在 Firebase Firestore 中使用哪种数据库结构来查询除不喜欢我的用户之外的所有用户?