Фильтр Firebase по полю и сортировка по другому полю - PullRequest
0 голосов
/ 17 декабря 2018

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

{
    user: 1;
    points: 100;
},
{
    user: 1;
    points: 510;
},
{
    user: 2;
    points: 110;
},
{
    user: 1;
    points: 85;
},
{
    user: 3;
    points: 300;
},
{
    user: 1;
    points: 500;
}

Как я могу сделать запрос, чтобы он отображал только поля пользователя 1, отсортированные от самого высокого к низшему с запросами REST?

Я пробовал с

https://xxxxxx.firebaseio.com/tirada.json?orderBy="user"&equalTo="1"

И он возвращает фильтрованный по пользователю, но без сортировки по точкам

    {
        user: 1;
        points: 100;
    },
    {
        user: 1;
        points: 510;
    },
    {
        user: 1;
        points: 85;
    },
    {
        user: 1;
        points: 500;
    }

Мне нужен этот результат

{
        user: 1;
        points: 85;
    },
    {
        user: 1;
        points: 100;
    },
    {
        user: 1;
        points: 500;
    },
    {
        user: 1;
        points: 510;
    }

Спасибо в

1 Ответ

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

Запросы к базе данных Firebase могут упорядочивать / фильтровать только по одному свойству.Во многих случаях можно объединить значения, которые вы хотите отфильтровать, в одно (синтетическое) свойство.В вашем случае это будет означать свойство "user_points": "1_510", которое вы затем сможете заказать / отфильтровать.Но REST API возвращает необработанные объекты JSON, и порядок свойств в объекте JSON не определен.Таким образом, это означает, что вам все равно придется отсортировать результаты по значению точки в коде на стороне клиента.Учитывая это, вы все равно можете придерживаться только фильтрации на user.

Также смотрите:

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