首页 > 解决方案 > 如何从 iOS 的 Firebase 中的子节点获取数据

问题描述

我的数据库结构是

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)

}

标签: iosswiftfirebasenosql

解决方案


你可以这样遍历每个孩子:

    // 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)")
                }
            }
        }
    })

推荐阅读