Firebase, как сортировать по ключу в диапазоне дат - PullRequest
0 голосов
/ 25 декабря 2018

Я настроил свои данные в базе данных реального времени Firebase следующим образом:

Ключ {Дата создания, Популярность, Рейтинг, Автор}

Можно ли получить ответы на вопросы?следующие вопросы:

  1. что, где 50 лучших игр за последний месяц по популярности?
  2. что, где игры с самым низким рейтингом на этой неделе?
  3. что является самым высокимоценка игры сегодня?

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

1 Ответ

0 голосов
/ 25 декабря 2018

Все это требует, чтобы вы рассмотрели несколько свойств.А поскольку база данных Firebase Realtime может упорядочивать / фильтровать только одно свойство, вы не сможете выполнить это без изменения модели данных.Для хорошего учебника, прочитайте мой ответ здесь: Запрос, основанный на нескольких выражениях where в Firebase

В этом случае вам потребуется три дополнительных свойства для каждого узла:

  1. свойство, сочетающее месяц и популярность, для вашего первого запроса.Например: "month_popularity": "201812_125" (если популярность 125).
  2. свойство, объединяющее месяц и рейтинг для вашего второго запроса.Например: "week_rating": "2018w51_4".
  3. свойство, объединяющее день и рейтинг для вашего третьего запроса.Например: "day_rating": "20181225_4".

С этими свойствами вы можете упорядочить нужный интервал и отфильтровать значения для нужного диапазона.Например, чтобы получить 50 лучших игр за этот месяц:

ref.orderByChild("month_popularity").startAt("201812_").endAt("201812~")

, где ~ - это просто символ после _ в ASCII, гарантируя, что мы перестанем возвращать результаты после результатов этого месяца.

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