使用Swift从Firebase读取单个值

KUN*_*UNG 1 database ios firebase swift 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
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的Firebase数据库:

project-2ac-33
 -user
   -name : "user1"
   -phone : 1111
   -password : 1234 
Run Code Online (Sandbox Code Playgroud)

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

但是当我运行这个项目时,testLabel显示我user1(Firebase的值)而不是电话价值.

有人可以帮我吗?

Pau*_*tos 6

试试这个:

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

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

另请注意,我现在正在使用.value而不是.childAdded.