[英]How to get a specific value in firebase-realtime-database in swift 4.0
[英]Swift Get Specific Value From Firebase Database
我正在尝试从Firebase数据库中获取特定值。 我看了一些像谷歌这样的文件,但我做不到。 这是数据库的JSON文件:
{
"Kullanıcı" : {
"ahmetozrahat25" : {
"E-Mail" : "ahmetozrahat25@gmail.com",
"Yetki" : "user"
},
"banuozrht" : {
"E-Mail" : "banuozrahat@gmail.com",
"Yetki" : "user"
}
}
}
SWIFT代码:
ref?.child("Kullanıcı").child(userName.text!).observeSingleEvent(of: .value, with: { (snapshot) in
if let item = snapshot.value as? String{
self.changedName = item
}
})
我想获得用户E-Mail
价值,而不是每个人。 我怎样才能做到这一点?
最后我找到了解决方案。 如果我声明一个var并尝试稍后使用它会返回nil,但是如果我尝试使用snapshot.value as? String
snapshot.value as? String
没关系。 这是我做的一个例子。
ref: FIRDatabaseReference?
handle: FIRDatabaseHandle?
let user = FIRAuth.auth()?.currentUser
ref = FIRDatabase.database().reference()
handle = ref?.child("Kullanıcı").child((user?.uid)!).child("Yetki").observe(.value, with: { (snapshot) in
if let value = snapshot.value as? String{
if snapshot.value as? String == "admin"{
self.items.append("Soru Gönder")
self.self.tblView.reloadData()
}
}
})
在您的代码中,快照将包含子值的字典。 要访问它们,请将snapshot.value转换为Dictionary,然后访问各个子项是一个快照(镜头,哈哈)
ref?.child("Kullanıcı").child(userName.text!)
.observeSingleEvent(of: .value, with: { (snapshot) in
let userDict = snapshot.value as! [String: Any]
let email = userDict["E-Mail"] as! String
let yetki = userDict["Yetki"] as! String
print("email: \(email) yetki: \(yetki)")
})
将“电子邮件”子项添加到查询中。
ref?.child("Kullanıcı").child(userName.text!).child("E-Mail").observeSingleEvent(of: .value, with: { (snapshot) in
if let item = snapshot.value as? String{
self.changedName = item
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.