使用Firebase检索多查询

时间:2016-06-03 02:43:56

标签: ios swift firebase firebase-realtime-database

我正在尝试为我的用户创建一个会话室节点。我的节点有fromto个用户' IDS。在创建新房间之前,我需要检查两种情况,其中包括'是主人,也是对手。 &安培; '到'是主持人,来自'是对手。

节点如下:

 - Rooms
    - "id1"
      - from: 2
      - to: 1

我想要做的基本上是:

from = 1和= 2 OR from = 2到= 1

的房间中选择所有房间

有没有办法在单个查询中检查这两种情况?我对使用Firebase了解复杂查询数据的性质感到困惑。

1 个答案:

答案 0 :(得分:2)

没有直接的方法来查询firebase中的两个不同的子节点,孩子们查询的唯一方法是:

 myRefToRooms.orderByChild('from').equalTo($user_id)

那就是说你可以在每个房间里创建一个用两个uid创建的查询子项:

 rooms:{
  $room_id:{
    from:$user_from,
    to:$user_to,
    query:$userfrom_$userto
  }
 }

这样您就可以获得符合这两个标准的所有值

myRefToRooms.orderByChild('query').equalTo($user1_$user2)

此外,您可以使用查询中的startAt()和endAt()方法,不仅可以找到完全匹配,而且所有房间都具有相同的“来自用户”或所有房间具有相同的“to user”< / p>

如果您不喜欢这种方法,则需要以不同的方式构建数据库以创建简单查询