Я застрял с ограничениями firebase . То, чего я хочу достичь, - это два, где массив содержит в одном запросе, а firestore не позволяет этого, он ограничен одним на запрос.
У меня есть набор ключевых слов в моей коллекции продуктов. например. ключевые слова: ['men','men-clothing', 'men-clothing-denim']
Я хочу искать товары на основе массива ключевых слов, например, если пользователь ищет мужскую одежду и фильтрует товар, выбирая бренд скажем джинсовая. Затем ключевое слово часто добавляется и заканчивается строкой «men-clothing-brands-denim». Теперь я хочу найти в своей коллекции товаров то же ключевое слово, которое я использую Where («ключевые слова», «массив-содержит», «мужская одежда-бренд-джинсовая»).
Проблема в том, что у меня также есть сортировка в моем приложении, поэтому, если пользователи выбирают «от низкого до высокого», я также хочу отсортировать продукт одновременно с применением фильтра. Я сортирую товары только по ключевым словам.
Firestore не позволяет использовать два массива Where в одном запросе. Я также хочу отсортировать свои продукты, когда пользователь подаст заявку на фильтр.
Для сортировки я использую where('keywords', 'array-contains', 'men-clothing');
Поэтому, в конце концов, если я хочу достичь обоих, мне нужно написать запрос как:
db.collection('products').where('keywords', 'array-contains', 'men-clothing').where('price', 'desc').where('keywords','array-contains', 'men-clothing-brand-denim').get()
и firestore не поддерживает два, где array-содержится в одном запросе, что является лучшим способом добиться этого с помощью firestore. Весь этот сценарий относится к моему компоненту поиска приложений электронной коммерции, где пользователь ищет товары, и появляется список товаров, где пользователь может фильтровать и сортировать товары.