检索新的Firebase数据 - iOS Swift

时间:2016-07-02 10:40:36

标签: ios firebase swift2 xcode7 firebase-realtime-database

firebase data

我是iOS编程的新手。在我的项目中,我已将数据存储到firebase数据库中。我必须检索所有" meanACC"的数据。将值存储到数组中,以使该数组的值为[2,5,6,6]。请帮忙。

2 个答案:

答案 0 :(得分:2)

使用您当前的结构,您应该这样做加载所有数据并迭代子项以比较meanAcc中的每一个。

ref.child("Data").observeSingleEventOfType(.Value, withBlock: { (snapshot) in 
    if let result = snapshot.children.allObjects as? [FIRDataSnapshot] {
        for child in result {
            //do your logic and validation here
            child.value["meanAcc"] as! String
        }
    } else {
        print("no results")
    }
}) { (error) in
   print(error.localizedDescription)
} 

另一个选择是,每当在/Data下存储新值时,将meanAcc值存储在另一个分支MeanAccs中。在这里,我假设您的其他数据与您的验证无关。

/MeanAccs
    /meanAccValue1 : true
    /meanAccValue2 : true

使用此结构,您可以拥有所有meanAcc的数组,而无需在Data下加载其他信息。

ref.child("MeanAccs").observeSingleEventOfType(.Value, withBlock: { (snapshot) in 
    if let result = snapshot.children.allObjects as? [FIRDataSnapshot] {
        for child in result {
            var meanAcc = child.key as! String
            print(meanAcc)
        }
    }
})

答案 1 :(得分:0)

只是标准查询并将值添加到数组中?

    var myArray = [Int]()

    let dataRef = myRootRef.childByAppendingPath("Data")

    dataRef.queryOrderedByChild("meanAcc").observeEventType(.Value, withBlock: {
        snapshot in

        for child in snapshot.children {
            let val = child.value["meanAcc"] as! Int
            myArray.append(val)
        }
        print(myArray) //prints the array [2, 5, 6, 6]
    })