我正在使用flutter和firebase构建一个应用程序,并且想知道最佳的firestore数据库结构是什么。
我希望用户能够发布消息,然后按帖子内容和发帖人用户名进行搜索。
为每个用户存储一个文件名和其他信息的用户创建一个集合,为每个文档包含帖子和发帖人的用户名的帖子分别创建一个集合吗?
在极少数情况下,如果帖子数量超过一百万或更多,查询这种庞大的馆藏是否会产生额外费用?
将每个用户的帖子存储为用户文档下的子集合是否更有意义?我相信这将需要其他读取操作才能访问每个文档的子集合。如果最终获得大量流量,价格会便宜还是昂贵?
答案 0 :(得分:0)
查询这种庞大的馆藏是否需要支付额外费用?
从Firestore读取数据的成本和性能完全取决于您检索的数据量(文档数及其大小),而不是以集合中的文档数为基础。
但是Firestore的限制是可以对“彼此接近”的数据进行写入的次数。故意含糊的定义意味着,如果数据自然地适合于自己(例如您的情况),则写可伸缩性通常最好将数据分布在单独的子集合上。
要深入了解Firestore和数据建模的取舍,请观看Getting to know Cloud Firestore。