Ios Swift从Firebase数据库获取特定值

Ios Swift从Firebase数据库获取特定值,ios,swift,firebase,firebase-realtime-database,Ios,Swift,Firebase,Firebase Realtime Database,我正试图从Firebase数据库中获取特定值。我查看了一些文档,比如谷歌的,但我做不到。以下是数据库的JSON文件: { "Kullanıcı" : { "ahmetozrahat25" : { "E-Mail" : "ahmetozrahat25@gmail.com", "Yetki" : "user" }, "banuozrht" : { "E-Mail" : "b

我正试图从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
价值,而不是每个人的价值。如何才能做到这一点?

将“电子邮件”子项添加到查询中

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

在代码中,快照将包含子值的字典。要访问它们,请将snapshot.value转换为字典,然后访问单个子项是一个快照(shot,lol)


最后我找到了解决办法。如果我声明一个var并尝试稍后使用它,它将返回nil,但是如果我尝试使用
snapshot.value as?字符串
没问题。这是我做的一个例子

    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()
            }
        }
    })

您想让我们为您编写代码??您可以展示您尝试过的内容,以便我们查看和提供帮助。我想要一个示例,但您是对的,我刚刚编辑过。我想,您是对的,但它返回nil您有第一条if语句初始化变量'value'等于snapshot.value,因此,下一个if语句可以是变量‘value’,而不是‘admin’,否则‘value’的第一个赋值就是浪费代码
    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()
            }
        }
    })