Как создать логическое И с разбивкой на страницы в Angular Firestore - PullRequest
2 голосов
/ 13 июля 2020

У меня есть коллекция продуктов в моей базе данных firestore. Я хочу, чтобы пользователь мог фильтровать эти продукты по таким полям, как цвет, тип и бренд. Каждый продукт содержит значение для каждого из этих полей.

В настоящее время я попытался использовать запрос where для возврата коллекции значений, которые будут выбраны пользователем (что работает), но я хочу для реализации бесконечной прокрутки / разбивки на страницы, чтобы я мог ограничить количество считываний, выполняемых одновременно.

Моя попытка кода:

  return this.db
  .collection("products", (ref) =>
    ref.where('productName', '==', 'sofa').orderBy('productName').startAfter(lastSeen).limit(batchSize)
  )
  .snapshotChanges();

Этот код, конечно, возвращает ошибку, поскольку вы не можете объединить где с запросом orderBy / startAfter.

Мой вопрос в том, как я могу адаптировать этот код для использования множественного равенства, где (мне нужны точные совпадения, поэтому не использую 'array-contains'), что также позволило бы мне использовать orderBy, чтобы я мог добавить бесконечную прокрутку / ограничить количество результатов.

1 Ответ

0 голосов
/ 15 июля 2020

Похоже, что в настоящее время это не поддерживается для angularfire2.

Однако мне удалось успешно запустить следующий образец в тестовом приложении, используя Firestore по умолчанию Веб-клиентская библиотека :

db.collection('cities')
.where('country','==', "USA")
.where('capital','==', true)
.orderBy("population")
.startAfter(100000)
.limit(2)
.get()
...