Как обновить последнюю запись из дерева базы данных Firebase? - PullRequest
0 голосов
/ 08 июня 2018

Я хотел бы обновить (или синхронизировать) последнюю запись из дерева в моей базе данных Firebase.

Структура выглядит следующим образом:

Я хочу наблюдать только за последней записью, не выбирая все записи, как это делает EventTypeChildAdded.
Однако я действительно хочу наблюдать за последней записью, поэтому я хотел бы вызывать функцию всякий раз, когда появляется новая 'последняя запись, поэтому, когда ребенок добавляется.

Я уже нашел этот кусок кода.

(DatabaseRef).queryOrderedByKey().queryLimitedToLast(1).observeSingleEventOfType

Но, похоже, это не соответствует последней записи.

1 Ответ

0 голосов
/ 08 июня 2018

Я думаю, вы на неправильном пути.childadded делает именно то, что вам нужно.Проверьте документ еще раз.https://firebase.google.com/docs/database/admin/retrieve-data#child-added

Впервые childadded извлекает весь список, но затем только элемент, добавленный в список.

Child Added

Событие child_added обычно используется при получении списка элементов из базы данных.В отличие от значения, которое возвращает все содержимое расположения, child_added запускается один раз для каждого существующего дочернего элемента, а затем снова каждый раз, когда в указанный путь добавляется новый дочерний элемент.Обратному вызову события передается снимок, содержащий данные нового дочернего элемента.Для упорядочения также передается второй аргумент, содержащий ключ предыдущего дочернего элемента.

РЕДАКТИРОВАТЬ: Чтобы ограничить дочерний запрос последним элементом:

ref.queryLimited(toLast: 1).observe(.childAdded) { (snapshot) in
// parse snapshot to get the last item
...