Когда вы выполняете запрос к базе данных Firebase, потенциально может быть несколько результатов. Таким образом, снимок содержит список этих результатов. Даже если есть только один результат, снимок будет содержать список из одного результата.
Итак, ваша переменная snapshot
содержит список результатов. Родителем этого списка является узел Posts
. Поэтому, если вы удалите родительский элемент, все узлы будут удалены.
Чтобы удалить только узлы, соответствующие вашему запросу, вам нужно перебрать дочерние узлы snapshot
и удалить их:
databaseRef.child("Posts").queryOrdered(byChild: "uid").queryEqual(toValue: user).observeSingleEvent(of: .value, with: { (snapshot) in
for child in (snapshot?.children)! {
(child as AnyObject).ref.removeValue() { error, _ in
}
}
}