如何从另一个孩子查询孩子。火力地堡(SWIFT)

时间:2017-06-06 20:19:57

标签: ios swift firebase firebase-realtime-database

我正在开发一个交付应用程序。所以我用firebase这样的产品和热门产品:

  • 产品

Products

  • PopularProducts(产品ID为关键,值为true)

PopularProducts

如何仅查询使用这些孩子的受欢迎产品?

2 个答案:

答案 0 :(得分:1)

您可以查询由esPopular子项排序的内容,并仅返回等于true的子项。

let ref = Database.database().reference(withPath: "productos")
let query = ref.queryOrdered(byChild: "esPopular").queryEqual(toValue: true)

query.observe(.childAdded, with: { (snapshot) in
    print(snapshot)
}) { (error) in
    print(error)
}

答案 1 :(得分:1)

您需要获取productosPopulares数组,然后获取每个对象。

let referenceToProductosPopulares = FIRDatabase.database().reference(withPath: "productosPopulares")

referenceToProductosPopulares.observeSingleEvent(of: .value, with: { snapshot in
        if let value = snapshot.value as? NSDictionary {
           let productosPopIds = value.allKeys as! [String]
           // get every object    
           for id in productosPopIds {
               let refToProd = FIRDatabase.database().reference(withPath: "productos").child(id)
               refToProd.observeSingleEvent(of: .value, with: { snapshot in
                   // your value
               })
           }
        } else {
          print("productosPopulares")
        }
     })

不完美的代码。应该做更多的功能。但这是个主意。

希望有所帮助