нумерация страниц с помощью firebase динамического ребенка - PullRequest
0 голосов
/ 27 сентября 2018

В настоящее время я думаю о том, как я могу реализовать нумерацию страниц с помощью firebase.Я понимаю, как разбивать на страницы данные, упорядоченные по статическому значению, например, отметку времени публикации.Вы просто ограничиваете запрос определенной суммой (например, 5 сообщений), сохраняете статическое значение последних элементов (например, отметку времени), а затем повторяете запрос снова, начиная со статического значения последних элементов (отметка времени).Но что произойдет, если вы захотите разбить на страницы ребенка, значение которого постоянно меняется?Как например данные, отсортированные по дочернему элементу: «рейтинг».Где «рейтинг» может измениться в любой момент, так как другие пользователи оценивают постоянно.По этой причине первые 5 запрошенных постов могут перестать быть 5 постами с наибольшим рейтингом, когда я запрашиваю вторые 5 постов.Кроме того, я не могу найти надежную начальную или конечную точку запроса, так как значения постоянно меняются.

1 Ответ

0 голосов
/ 27 сентября 2018

Допустим, у вас есть запрос из 5 лучших постов с оценками:

id: a, rating 5.0
id: b, rating 4.9
id: c, rating 4.8
id: d, rating 4.7
id: e, rating 4.6

Это живой запрос, поэтому он обновляется при изменении базовых данных.Скажите, что кто-то дает элементу c очень низкий рейтинг, так что его среднее значение становится 4.0.Это означает, что c исчезает из моментального снимка запроса, и включается следующий элемент с наивысшим рейтингом, что приводит к:

id: a, rating 5.0
id: b, rating 4.9
id: d, rating 4.7
id: e, rating 4.6
id: f, rating 4.5

Таким образом, у вас все еще есть 5 элементов в наборе результатов.

Что касается нумерации страниц, последний элемент этой новой страницы также остается якорем для следующей страницы.

...