Swift-Firebase如何在没有父母的情况下仅获取孩子的值

时间:2018-07-02 10:32:43

标签: ios swift firebase firebase-realtime-database

在数据库中,我有一个名为“城市”的子城市,每个城市都有多个包含协调的区域

我遍历了“城市”下的每个孩子,找到最近的位置,并使用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”并一次获取数据的信息

1 个答案:

答案 0 :(得分:0)

我用不同于尝试的方式解决了这个问题。

我将所有数据放在自定义数组中-NSMutableArray() 然后遍历该数组并添加if语句(city == city2)(如果为真),则将该行放置在新数组中