Firebase - 按嵌套键查询

时间:2018-01-22 09:53:10

标签: swift firebase firebase-realtime-database

我有这样的数据结构:

ref.child("UserOrders").queryOrdered(byChild: "unique-orderid-456").observeSingleEvent(...

对于管理功能,我需要使用orderid查询(不知道用户ID)并获取订单详细信息?我怎样才能有效地做到这一点?

我尝试了这个但是我在UserOrders下获得了所有数据。

{{1}}

1 个答案:

答案 0 :(得分:1)

使用Firebase API,我们只能过滤一个级别的嵌套数据。

因此,首先需要将用户映射到以下订单: -

UserOrders

unique-userid-100

    unique-orderid-456 = true
    unique-orderid-123 = true
unique-userid-200
    unique-orderid-789 = true
....

然后使用查询查找订单的userid: -

let ref  = FIRDatabase.database().reference()
        ref.child("UserOrders").queryOrdered(byChild: "unique-orderid-456").queryEqual(toValue: true).observeSingleEvent(of: .value, with: { (snapshot) in
  // here userid will be obtained for an order, using this ref/<userid>/unique-orderid-456 can be observed to get order details

})

这是一种解决方法,但如果您可以重新考虑重组数据

,这将是一件好事

请参阅类似: - Firebase Query Double Nested