【问题标题】:How to structure a like query in Firestore?如何在 Firestore 中构建类似查询?
【发布时间】:2021-05-28 19:36:10
【问题描述】:

我正在构建一个简单的应用程序,其中帖子显示在用户的主页上,他可以喜欢或不喜欢它们。 首先,当应用程序中没有用户时,我制作了一个简单的布尔字段“喜欢”,如图所示,以确定帖子是否被喜欢或不喜欢。然而,当我开始与用户合作时,我发现很难为 likes 字段找到完美的结构。

在 Firestore 中,我为每个帖子添加了一个名为“likedBy”的字段,其中包含一个映射,其中包含每个用户 id 的键和一个布尔值,用于确定用户是否喜欢该帖子。

我不知道这种结构是否合适,如果不合适,有没有更好的方法来达到我的目标?

【问题讨论】:

  • 上述结构有问题。注册用户少了也没关系。

标签: firebase flutter google-cloud-firestore


【解决方案1】:

likedBy 字段足以涵盖大多数用例。
只需在likedBy 中存储按用户 ID 喜欢帖子的所有用户的数组。当用户喜欢时 - 将用户 ID 添加到数组中并在不喜欢时将其删除。
这意味着您还可以删除 likesliked 字段,因为您可以通过读取 likedBy 数组来获取它。

【讨论】:

    【解决方案2】:

    我建议更进一步,节省的不仅仅是用户 ID。您还可以保存用户displayNamephotoUrl。这样,您无需阅读 ($$$$money$$$$) 喜欢 Posts 的每个 Users 的文档来显示他们的姓名和/或头像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-08
      • 1970-01-01
      • 1970-01-01
      • 2012-11-13
      • 2018-05-16
      相关资源
      最近更新 更多