gpt4 book ai didi

swift - 即使数据存在,Firebase 查询也会返回 null

转载 作者:行者123 更新时间:2023-11-30 10:52:13 24 4
gpt4 key购买 nike

因此,我设置了一个查询,它将搜索用户输入的年龄在我的数据库中的位置。由于某种原因,即使年龄在我的数据库中,它仍然会返回为空。

如果我输入 35 作为年龄,即使 35 是数据库中的年龄之一,它仍然会打印“NULL”。我该如何解决?

enter image description hereJson 文件:

  {
"data" : [ {
"age" : 35,
"agratio" : 0.9,
"alb" : 3.3,
"alkphos" : 187,
"db" : 0.1,
"diagonsis" : "yes",
"gender" : 1,
"sgot" : 18,
"sgpt" : 16,
"tb" : 0.7,
"tp" : 6.8
}, {
"age" : 40,
"agratio" : 0.9,
"alb" : 3.3,
"alkphos" : 187,
"db" : 0.1,
"diagonsis" : "no",
"gender" : 1,
"sgot" : 18,
"sgpt" : 16,
"tb" : 0.7,
"tp" : 6.8
} ],
"users" : {
"234234adfsdsf" : {
"username" : "hey"
},
"BbZZCTIIcJdvCCU9og905kKVvo53" : {
"email" : "andy55@yahoo.com",
"username" : "andy"
}
}
}

代码:

@IBAction func onDiagnose(_ sender: Any) {
let ref = Database.database().reference(fromURL: "https://agetest.firebaseio.com/")
let databaseRef = ref.child("data")
databaseRef.queryOrdered(byChild: "age").queryEqual(toValue: String(ageTextField.text!)).observeSingleEvent(of: .value, with: { (snapshot) in
// if there is data in the snapshot reject the registration else allow it

if (snapshot.value! is NSNull) {


print("NULL")

} else {
print(snapshot.ref.parent?.key!)
//get parent

}


}) { (error) in
print(error.localizedDescription)
}

}

最佳答案

您正在将(代码中的)字符串与数据库中的数字进行比较,但它们并不相同。解决方案是先解析代码中的数字,然后再将其传递给 queryEqual(toValue: ):

databaseRef
.queryOrdered(byChild: "age")
.queryEqual(toValue: Int(ageTextField.text)!)
.observeSingleEvent(of: .value, with: { (snapshot) in

关于swift - 即使数据存在,Firebase 查询也会返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54338357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com