如何在条件上过滤Firebase查询。我试过这段代码
let productsQuery = FIRDatabase.database().reference().child("Products").queryLimited(toFirst: 10)
//method 1
productsQuery.queryEqual(toValue: "Pending", childKey: "Status")
//method 2
productsQuery.queryOrdered(byChild: "Status").queryStarting(atValue: "Pending").queryEnding(atValue: "Pending")
但它总是返回整个集合,这是巨大的(超过10k条目)
我想只获取“Status”=“Pending”
的对象我确信Firebase中会存在这样的基本过滤。请告诉我。
答案 0 :(得分:0)
您需要以这种方式合并queryOrdered(byChild:)
和queryEqual(toValue:)
并使用.observeEvent
let productsQuery = FIRDatabase.database().reference().child("Products")
productsQuery.queryOrdered(byChild: "Status").queryEqual(toValue:"Pending")
.queryLimited(toFirst: 10).observeSingleEvent(of: .value, with: { (snapshot : FIRDataSnapshot) in
})