Если у меня есть какие-то данные в Firebase базы данных в режиме реального времени, как этотFirebase: запрос и удалять ключи в диапазоне
root--.
|--stuff--.
|--1
|--2
|--3
|--4
|--5
|--6
|--7
, где все эти числа являются ключами, которые содержат больше данных, и я хочу, чтобы удалить все ключи меньше или равны 4, как мне это сделать, не загружая всю ветку «штуки»?
С быстрым Я думаю, что я могу запросить ключи в этом диапазоне от
let ref = FIRDatabase.database().reference().child("stuff")
let query = ref.queryEnding(atValue: 4)
, но я не знаю, как получить имена ключей себя так, что я могу удалить их вроде этого псевдокода
for key in queryResults {
let ref = FIRDatabase.database().reference().child("stuff/\(key)")
ref.setValue(nil)
}
(на самом деле я имею дело с ключами временной метки, и я хочу, чтобы удалить ветви данных, которые получили слишком стар.)
Смотрите мой ответ здесь: http://stackoverflow.com/questions/38835857/query-ref-removevalue-removes -the-whole-child-in-just-a-node –
Звучит так, будто вы на правильном пути. Запросите первые 4 узла, а затем удалите их с помощью их ключей - см. Мой ответ фрагмента кода. Есть что-то еще? – Jay
Как я могу запросить эти первые 4 узла? Я не думаю, что ref.queryEnding (atValue: 4) достаточно. – user3915477