Запрос должен соответствовать тому, что вы хотите удалить.
Если вы хотите удалить сообщение с текстом "where are you?"
, вам нужно сделать запрос:
let messagesRef = Database.database().reference().child("MESSAGES")
messagesRef.queryOrdered(byChild: "message").queryEqual(toValue: "where are you?")...
Если вы хотите удалить все сообщения с определенным адресом электронной почты, вам нужно запроситьчто:
messagesRef.queryOrdered(byChild: "email").queryEqual(toValue: "email1@gmail.com")...
Если вы хотите удалить конкретное сообщение, вы должны знать его ключ и затем:
messagesRef.queryOrderedByKey().queryEqual(toValue: "-L....")...
Или более идиоматический:
messagesRef.child("-L....").observeSingleEvent(of: .value, with: { (snapshot) in
snapshot.ref.removeValue()
(Обратите внимание, что мы наблюдаем value
здесь, а не .childAdded
, так как мы больше не используем запрос.
Или даже проще; поскольку вы уже знаете полный путь к удаляемому узлу,Вам не нужно ничего читать:
messagesRef.child("-L....").removeValue()