我试图从swift中查询firebase实时数据库。
但以下代码无效。
var keyvalue = "somevalue"
Database.database().reference().child("users")
.queryOrdered(byChild: "key1").queryEqual(toValue: keyvalue.lowercased())
.observe(.value, with: {(snapshot) in
if snapshot.exists() {
// do some action
// block1
} else {
// do some action if not exist
// block2
}
})
我将断点改为" block1"," block2"。 但代码未达到block1或block2。 我的代码出了什么问题?
Firebase数据库结构如下所示。
{
// some nodes..
"users": {
"auto_key1": {
"key1": "key1val",
"key2": "key2val"
},
"auto_key2": {
"key1": "key1val",
"key2": "key2val"
}
....
}
}
我认为这足以解释结构。
答案 0 :(得分:1)
我在iPhone 7(iOS 11.3)中遇到了同样的问题。
但是当我在模拟器或其他iPhone中测试相同的代码时,一切都很好。
我也不知道为什么代码无法在特定手机中进行回调,但这不是您的代码问题。
答案 1 :(得分:0)
除非孩子的值等于“somevalue”,否则它不会返回子快照。根据您的数据库判断,这是不可能的,因为您的所有“key1”键都具有“key1val”的值。