【问题标题】:Firestore - user favorites data structure suggestionsFirestore - 用户最喜欢的数据结构建议
【发布时间】:2019-03-25 08:33:01
【问题描述】:

我有一个项目,我需要用户能够将项目添加到他的收藏夹中,如下所示:

Items 
 - Item 1 
 - Item 2
 - Item 3
Users
 - User 1
   - Favorites
     - Item 1
     - Item 3
 - User 1
   - Favorites
     - Item 2

任何人都可以通过建议一种构建我的数据的好方法来提供帮助吗?

编辑 1:

对不起,我应该在最初的问题中解释这一点。所以我有一个主列表,其中显示了数据库中的所有项目及其数据。然后每个用户都可以保存他喜欢的项目。之后,在该用户的页面上,他应该能够查看他保存的所有项目。

好吧,到目前为止一切都很好,但我能想到的将项目保存在用户收藏夹列表中的唯一方法是将其 ID 保存在那里。现在有一个问题。我想显示项目的数据而不仅仅是它的 ID。

【问题讨论】:

  • 你现在的问题的结构有什么问题?
  • 我觉得不错。你为什么要另一个结构,这有什么问题?请回复@。
  • @AlexMamo 我编辑了我的帖子并解释了它。对此感到抱歉

标签: angular firebase google-cloud-firestore


【解决方案1】:

我能想到的将项目保存在用户收藏夹列表中的唯一方法是将其 ID 保存在那里。

是的,这是最好的解决方案,在收藏夹列表中保留该项目的引用,即实际的项目 ID。

我想显示项目的数据而不仅仅是它的 ID。

在这种情况下,您应该查询数据库两次,一次获取 id,然后根据这些 id 获取相应的数据。而已。不要害怕嵌套的监听器,它会工作得很好。

【讨论】:

  • 嗨,伊万!您是否尝试过我上面的解决方案?如果您认为我的回答对您有所帮助,请考虑通过单击左侧投票箭头下方的复选标记(✔️)来接受它。应将颜色更改为绿色。我会很感激的。谢谢!
  • 当我们先获取ids列表,然后对每个id进行查询时,会请求很多,不只是两个,不是吗?
  • @AbdullahKhan 这将是两个查询,将返回许多可能的文档。但是,如果文档的数量很大,那么您可以考虑将它们分成更小的块。
  • 你说的是当我获取 10 个 id 的列表然后运行 ​​for 循环来检索每个 id 数据时,这将被视为两个查询?
  • @AbdullahKhan 获取ID的操作被认为是一次查询,获取与这些ID对应的数据的操作被认为是另一个查询。但是,系统会根据您从两个查询中获得的文档数量向您收费。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-18
  • 1970-01-01
  • 1970-01-01
  • 2020-04-23
相关资源
最近更新 更多