在我的应用中,我正在尝试对帖子进行评论。
我正在将Flutter与Firebase用作后端。
当前,我在Firebase中有一个集合:“帖子”,其中帖子的信息存储在此集合的文档中。我想允许用户在帖子中添加评论。我最初的想法是将包含所有评论数据的数组添加到发布文档中。
显然,此解决方案是不合理的,因为如果帖子上有1,000条评论,那么当我阅读帖子文档时,即使他们从不看评论,我也会将所有评论数据传输给用户。因此,我试图找出最好的方法来对帖子的评论数据进行分页。
我已经想到了两种方法,但据我所知,在火力地堡定价模型上,它们都有权衡的地方,希望有一个我没有想到的更好的解决方案。
第一个想法:为每个帖子添加评论集。在集合中,每个评论都是一个文档。通过使用Firebase的分页工具查询注释文档,可以简化分页。我的想法有一个问题:Firebase每次编写/阅读文档时都会向您收取费用(〜$ 0.12 / 10万)。就文档写入而言,这将是最昂贵的方法。
第二个想法:有1个文档,用于存储给定帖子的所有评论。因此,我只需要读/写一个文档(避免成本),但是如果所有注释数据都集中在一个文档中,我将无法对注释数据进行分页(如果我写错了,请纠正我),并且我会花更多精力收取网络流量费用(0.01美元),因为我会向用户发送所有评论数据,即使他们不使用它(也在他们的个人数据计划中收费)。
我是Firebase / Firestore的新手,所以我想在这里看看我的解决方案中是否缺少某些东西,(希望)有第三个更好的解决方案。 在我看来,第一种选择似乎更清洁,更轻松,但老实说我并不了解。