Сортировка базы данных Swift4 Firebase не работает - PullRequest
0 голосов
/ 31 марта 2020

Решение:

Я должен использовать snap.value. теперь я попробовал "snap.children", который отлично работает. В этом же запросе snap.value возвращает несортированные данные. Snap.children возвращает отсортированные данные

self.referenceData = (Database.database().reference().child("imagelist" + "/" + userID!))
    self.referenceData.queryOrdered(byChild: "created").observeSingleEvent(of: .value, with: { (snap : DataSnapshot)  in
  print(snap.value) // Unsorted
  print(snap.children) // Sorted
    ...
})

ПРОБЛЕМА

Я пытаюсь отсортировать данные по созданным ключ. но ничего не произошло, может быть, какая-то ошибка в моем коде,

Просмотр моей базы данных Database view

self.referenceData = (Database.database().reference().child("imagelist" + "/" + userID!))
    self.referenceData.queryOrdered(byChild: "created").observeSingleEvent(of: .value, with: { (snap : DataSnapshot)  in
    ...
})

1 Ответ

1 голос
/ 31 марта 2020

Скорее всего, вы звоните snap.value, который возвращает дочерние узлы в словаре. И записи в словаре по определению неупорядочены.

Чтобы получить результаты в том порядке, в котором вы их запросили, вам нужно выполнить итерацию по snap.children.

Смотрите мой ответ здесь пример: Как правильно использовать queryOrderedByValue

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...