我想浏览Firebase并检查子值是否存在以及该值是否存在。我想打印出一份声明
databaseRef.child("books").queryOrdered(byChild: "Category").queryEqual(toValue: categorySegue).observe(.childAdded, with: { (snapshot) in
if snapshot.exists() {
print("data found")
}else{
print("no data found")
}
})
当子值存在时,它会打印出完全正常但不存在的数据。它不打印出未找到的数据
这是因为您正在观察.childAdded
,仅当有子项与您的查询匹配时才会触发。
如果还想检测没有子项匹配的情况,则需要观察.value
事件并循环结果。
databaseRef.child("books").queryOrdered(byChild: "Category").queryEqual(toValue: categorySegue).observe(.childAdded, with: { (snapshot) in
if snapshot.exists() {
print("data found")
for child in snapshot.children {
print(child.key)
}
}else{
print("no data found")
}
})
另请参阅搜索子值 Firebase/Swift