我有这样的数据结构:
ref.child("UserOrders").queryOrdered(byChild: "unique-orderid-456").observeSingleEvent(...
对于管理功能,我需要使用orderid查询(不知道用户ID)并获取订单详细信息?我怎样才能有效地做到这一点?
我尝试了这个但是我在UserOrders下获得了所有数据。
{{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