Firestore создать составной запрос из массива - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь создать составной запрос для выполнения запроса диапазона.

let query;
category.queryParams.query.fieldFilters.forEach(function(fieldFilter) {
    query = collection.where(fieldFilter.field, filterOperationString(fieldFilter.filterType), fieldFilter.filterValue);
});

Но это не дает мне желаемых результатов.

У меня такое ощущение, что запрос нужно создать в цепочке, как collection.where().where()

Если это так, как я могу преобразовать содержимое моего массива, используя этот синтаксис?

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Решено с этим кодом:

let query;
category.queryParams.query.fieldFilters.forEach(function(fieldFilter) {
    if (typeof query === "undefined") {
       query = collection.where(fieldFilter.field, filterOperationString(fieldFilter.filterType), fieldFilter.filterValue);
    } else {
       query = query.where(fieldFilter.field, filterOperationString(fieldFilter.filterType), fieldFilter.filterValue);
    }
});
0 голосов
/ 09 января 2019

Насколько я понимаю, у вас есть массив с именем fieldFilters, который содержит несколько объектов с атрибутом поля (например, «цена»), атрибутом filterType (например, «>») и атрибутом filterValue (например, 50). Если вы пытаетесь выполнить запросы с несколькими диапазонами для разных полей, это не будет работать, как указано в документации https://firebase.google.com/docs/firestore/query-data/queries#compound_queries. Решения для этой проблемы существуют, я предлагаю вам прочитать ответ Фрэнка ван Пуффелена на следующий вопрос: Пожарный запрос с несколькими диапазонами .

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