【问题标题】:how to get data from child node in firebase in iOS如何从 iOS 的 Firebase 中的子节点获取数据
【发布时间】:2019-03-20 08:30:42
【问题描述】:

我的数据库结构是

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)

}

【问题讨论】:

  • 试试as? [[String: Any]]

标签: ios swift firebase nosql


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    尝试[[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)
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-24
      • 2019-01-03
      • 2018-02-18
      • 2017-05-03
      • 2022-06-12
      • 1970-01-01
      相关资源
      最近更新 更多