在数据库中,我有一个名为“城市”的子城市,每个城市都有多个包含协调的区域
我遍历了“城市”下的每个孩子,找到最近的位置,并使用ref.child("cities").observe()
来获得城市名称:
for child in snapshot.children {
let childSnap = child as! DataSnapshot
if let dicionary = childSnap.value as? [String: AnyObject]{
var latitude1 = dicionary["latitude"] as! Double
var longitude1 = dicionary["longitude"] as! Double
var altitude1 = dicionary["altitude"] as! Double
让我们说最近的城市是“城市2”,并将其放在一个名为selectedCity的变量中。
因此,我重复并将其添加到ref.child("cities").child(selectedCity)
:
ref.child("cities").child("\(city2)").observe(.childAdded, with: { (snapshot) in
if let dicionary = snapshot.value as? [String : AnyObject] {
print(dicionary)
var altitude = dicionary["altitude"] as! Double
var latitude = dicionary["latitude"] as! Double
var longitude = dicionary["longitude"] as! Double
var theCity = dicionary["cityName"] as! String
if theCity == city2 {
locationArray.add(location.init(area: area, city: theCity, latitude: latitude, longitude: longitude, altitude: altitude))
}
}
})
在这里,我遇到的问题是,我将所有孩子都置于“城市1”和“城市2”中的“城市”下,但跳过其余城市,然后让孩子们进入“城市2”下,即重复数据
如何获取跳过父级“城市”并转到子级“ city 2”并一次获取数据的信息
答案 0 :(得分:0)
我用不同于尝试的方式解决了这个问题。
我将所有数据放在自定义数组中-NSMutableArray() 然后遍历该数组并添加if语句(city == city2)(如果为真),则将该行放置在新数组中