答案 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]
})