как получить данные из дочернего узла в firebase в iOS - PullRequest
1 голос
/ 20 марта 2019

моя структура базы данных

appname:
        Tasks:
             childbyautoid1:
                            "name": "myname"
                            "age": "18"
             childbyautoid2:
                            "name": "yourname"
                            "age": "20"

Я хочу знать, как получить все данные, которые являются именем и возрастом всех дочерних узлов, поскольку я не знаю childbyautoid

Я пишу

Database.database().reference().child("Tasks").observe(.childAdded){ (dss) in 
if let value = dss.value  as? [String: AnyObject]{ 

    let name = value["name"] as? String
    let age = value["age"] as? String
    print(name)
    print(age)

}

Ответы [ 2 ]

3 голосов
/ 20 марта 2019

Вы можете пройти через каждого ребенка следующим образом:

    // Create a reference to the database path
    let ref = Database.database().reference(withPath: "Tasks")

    // You can keep your database synced
    ref.keepSynced(true)

    ref.observe(.value, with: { (snapshot) in

    // Checking if the reference has some values
    if snapshot.childrenCount > 0 {

        // Go through every child
        for data in snapshot.children.allObjects as! [DataSnapshot] {
            if let data = data.value as? [String: Any] {

                // Retrieve the data per child

                // Example
                let name = data["name"] as? String
                let age = data["age"] as? String

                // Print the values for each child or do whatever you want
                print("Name: \(name)\nAge: \(age)")
                }
            }
        }
    })
0 голосов
/ 20 марта 2019

Попробуйте [[String: Any]] вместо [String: Any], затем выполните цикл внутри него для каждого Dictionary и отобразите результат, что-то вроде этого.

if let value = dss.value  as? [[String: Any]]{
    for val in value {
        let name = val["name"] as? String
        let age = val["age"] as? String
        print(name)
        print(age)
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...