我试图通过查询然后调用query.ref.removeValue()
从我的数据库中删除一个特定节点,但每次运行这段代码时,它会删除整个子节点,而不仅仅是节点。我的代码看起来像这样......
let query = (ref?.child("Groups").child("Martins").child("Messages").queryEqualToValue(selectedValue))
query!.ref.removeValue()
我的数据库看起来像这样......
感谢所有的帮助,我真的很感激。
答案 0 :(得分:0)
查询引用指向定义查询的位置,而不是指向它匹配的元素。因此query!.ref.removeValue()
将删除整个位置。
要删除查询匹配的单个项目,您需要将一个侦听器附加到查询并迭代子项:
let query = ref?.child("Groups").child("Martins").child("Messages")
.queryOrderedByKey("Item").queryEqualToValue(selectedValue)
query.observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in
snapshot.ref.removeValue()
})