Как получить данные из другой базы данных одновременно - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть места в разных городах в моей базе данных в реальном времени (firebase).

Ниже приведена структура моей базы данных.

Database Structure

Но в соответствии с руководством по firebase я попробовал следующий код для получения данных

cityA.queryOrdered(byChild: "completed").observe(.value, with: { snapShot in
            var newItems: [AttractionPlace] = []
            for child in snapShot.children {
                if let snapShot = child as? DataSnapshot,
                    let attraction = AttractionPlace(snapShot: snapShot) {
                        newItems.append(attraction)
                }
            }
            print(newItems.count)
        })

Iтакже хотел бы получить данные из cityB в то же время и не знаю, как получить.Я знаю, что могу повторить то же действие до cityB.Но есть ли лучший способ?

1 Ответ

0 голосов
/ 28 декабря 2018

Я не уверен, как вы хотите структурировать ваши данные.Можете ли вы показать мне, как должен выглядеть AttractionPlace?Приведенный ниже код делает то, что вы хотите, добавляя название каждого места к newItems, но без указания того, из какого города это.Обратите внимание, что я не использовал ваш AttractionPlace объект.

let dataref = Database.database().reference()
dataref.child("attractions").observe(.value, with: { (snapshot) in
    var newItems = [AnyObject]()
    for city in snapshot.children.allObjects as! [DataSnapshot] {
        let value = city.value as? NSDictionary ?? [:]
        for child in value {
            let attraction = child.value
            newItems.append(attraction as AnyObject)
        }
    }
    print("newItems: ",newItems)
    print("newItems.count: ",newItems.count)
})

Результат:

newItems:  [Place 3, Place 4, Place 1, Place 2]
newItems.count:  4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...