我正在尝试为我的用户创建一个会话室节点。我的节点有from
和to
个用户' IDS。在创建新房间之前,我需要检查两种情况,其中包括'是主人,也是对手。 &安培; '到'是主持人,来自'是对手。
节点如下:
- Rooms
- "id1"
- from: 2
- to: 1
我想要做的基本上是:
从 from = 1和= 2 OR from = 2到= 1
的房间中选择所有房间有没有办法在单个查询中检查这两种情况?我对使用Firebase了解复杂查询数据的性质感到困惑。
答案 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>
如果您不喜欢这种方法,则需要以不同的方式构建数据库以创建简单查询