如何从 Firebase 实时数据库检索嵌套节点到 iOS 应用程序

时间:2021-05-04 01:51:13

标签: ios json swift firebase firebase-realtime-database

我正在构建一个简单的应用程序,用于从 firebase 实时数据库存储和检索数据。目前我的数据库有一个用户的这些数据。 Database content

这是我用来插入数据的代码。

 let ref = Database.database().reference()
    let user = ref.child("bill")
    user.setValue(["name":"Bill gates"])
    user.child("Request/One").setValue(["Phno":" ","Message":" "])

正如你所看到的,我插入了一个空值的字典,因为我不知道如何创建一个没有任何数据的子节点。

每当将新节点作为子节点添加到请求节点时,我都会尝试完全检索数据库的请求部分。

这里是我的检索代码

   user.observe(.childAdded) { (DataSnapshot) in
        
        for case let  i as DataSnapshot in DataSnapshot.children
        {
            guard let dict = i.value as? [String:Any] else{print("Error"); return}
            let a = dict["Message"] as? String
            let b = dict["Phno"] as? String
            print(a!)
            print(b!)
        }
    }

但是在上面的代码中,当我在数据库中显式添加一个新节点时,它不会被调用

1 个答案:

答案 0 :(得分:0)

使用下面的代码解决了它

user.observe(.childAdded) { (DataSnapshot) in
   
   if let dict = DataSnapshot.value as? NSDictionary
   {
    for i in dict.allKeys
    {
        if let data = dict[i] as? NSDictionary
        {
            let message = data["Message"] as! String
            let phno = data["Phno"] as! String
            
            if(message != "" && phno != "")
            {
                print(message)
                print(phno)
            }
        
    }
   }
    
}
相关问题