我正在构建一个简单的应用程序,用于从 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!)
}
}
但是在上面的代码中,当我在数据库中显式添加一个新节点时,它不会被调用
答案 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)
}
}
}
}