获得未知密钥的价值

时间:2017-09-02 07:25:03

标签: reactjs firebase react-native firebase-realtime-database

这是我在图片中的firebase数据库结构:

enter image description here

我将解释结构, 我有一个论坛,人们可以在其中发布交易。 每个帖子都有一些随机用户密钥,如图所示。 此外,每个帖子都有一个用户想要销售或购买的商品列表(图像中有'或者想要')。 每笔交易中的商品数量可以从1变为10。

我想获取正在销售(或购买)某些商品ID的用户的所有论坛帖子。

例如:获取用户销售商品的论坛帖子' Id' '某些项目名称'

我该怎么做?我似乎无法参考清单中的每个项目 因为你不能做多个orderByChild。 如果你觉得这个数据库结构不可能,请给我一个替代方案。 我想知道我是否在浪费时间浪费我的时间,这是不可能的:(

请注意我的数据库中有很多数据,因此我无法过滤客户端的帖子。

1 个答案:

答案 0 :(得分:1)

您可以更改数据库结构或者您可以创建一个不同的节点,该节点可以包含所有"有"的元数据。或者"想要"具有itemID,userID和"的项目有"或者"想要"节点子编号(在这种情况下,它应该是0-9,因为每种类型中有10个项目)。因此,每当您保存/删除数据时,"有"或者"想要"您还必须在其他新元数据表中执行相同的操作。

您可以在此节点上运行查询以获取所需的项目,然后在结果数据的帮助下直接通过在运行时创建引用来获取这些特定项目,因为您拥有userId,拥有或想要类型,itemId。 / p>

您的元数据应该是类似的。

metadata
  |
  |
  +{randonId1}
       |
       |-type : "have" or "want"
       |-userId : "randonId of user".(Kt0QclmY3.as shown in picture)
       |-Id: "Breakout Type-S"
       |-childOnNode: 0, (0-9)
 +{randonId2}
       |
       |-type : "have" or "want"
       |-userId : "randonId of user".(Kt0R48Cp..as shown in picture)
       |-Id: "Breakout"
       |-childOnNode: 0, (0-9)