使用Swift从Firebase读取单个值

时间:2017-06-09 14:19:09

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

由于这个问题,我一直在死。

首先让我向您展示我的 Swift代码

@IBOutlet weak var testLabel: UILabel!
@IBOutlet weak var phoneTextField: UITextField!

var dbRef : DatabaseReference!
dbRef = Database.database().reference()

if let text = phoneTextField.text, !text.isEmpty {
    dbRef.child("user").observeSingleEvent(of: .childAdded) {    
        (snapshot) in
        let phoneDB = snapshot.value as? String
        self.testLabel.text = phoneDB
    }
}

这是我的 Firebase数据库

project-2ac-33
 -user
   -name : "user1"
   -phone : 1111
   -password : 1234 

我想做的是: 如果我在phoneTextField中键入任何数字 然后testLabel向我显示1111(Firebase中的真实电话价值)。

但是,当我运行此项目时,testLabel会向我显示user1(来自Firebase的值)而不是电话价值。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:6)

请改为尝试:

...
dbRef.child("user/phone").observeSingleEvent(of: .value) { 
    (snapshot) in
    if let phoneDB = snapshot.value as? Int {
        self.testLabel.text = "\(phoneDB)"
    }
}

您正在阅读所有 user个孩子,其中还包括passwordname个节点。上面的代码只读取 所需的user/phone值;)

另请注意,我现在使用.value代替.childAdded