Как искать с помощью нескольких .Где() ? Vue JS & Firebase


Как искать с помощью нескольких .Где() ? Vue JS & Firebase

06.09.2020 08:43:33 Просмотров 36 Источник

Я хочу запросить поиск по нескольким коллекциям, а не только по бренду. Я делаю запрос непосредственно из облачного магазина firestore

до сих пор я успешно опрашивал бренд.

Я стараюсь сочетать также с категорией и описанием, но это всегда терпит неудачу

Я использую where() для этого, чтобы позвонить непосредственно из firebase

getExchanges({commit, state}, {searched} = {searched: ''}) {
      commit('resetPagination');
      // Here you want to make a call to firebase and ask for data
      return db
       .collection('exchanges')
       .where('brand', '>=', searched).where('brand', '<=', searched+ '\uf8ff')
       .limit(state.pagination.itemCount)
       .get()
       .then(snapshots => {
         if (snapshots.docs.length === 0) {
            commit('setExchanges', []);
            return []
         }
         const exchanges = snapshots.docs.map(doc => ({...doc.data(), id: doc.id}))
         commit('setExchanges', exchanges)
         commit('setLastItem', snapshots.docs[snapshots.docs.length - 1])
         commit('setPreviousFirstItem', snapshots.docs[0])
         return exchanges
        })

Мое поле в коллекции обмена в firestore-это

  • марка
  • категория
  • город

С категорией я стараюсь делать это

.where('brand' || 'category', '>=', searched).where('brand' || 'category', '<=', searched+ '\uf8ff')

У вас есть какие-то предложения? это было бы потрясающе

Овации

Заид

У вопроса есть решение - Посмотреть?

Ответы - Как искать с помощью нескольких .Где() ? Vue JS &amp; Firebase / How to search using multiple .Where() ? Vue JS & Firebase

CRUD DS

06.09.2020 09:04:30

В настоящее время Cloud Firestore не поддерживает запросы" или". Самая близкая вещь вы можете с помощью "массив-содержит" и "массив-содержит-никаких" запросов и четко структурировать информацию, чтобы удовлетворить потребности запроса. Альтернативой может быть использование стороннего сервиса под названием Algolia.

Еще один момент, который следует отметить, заключается в том, что ваш код

.where('brand' || 'category', '>=', searched).where('brand' || 'category', '<=', searched+ '\uf8ff')

идентичен

.where('brand', '>=', searched).where('brand', '<=', searched+ '\uf8ff')

оператор as || в javascript возвращает второй член, если первый член не определен, null, пустую строку, пустой массив или false, и возвращает первый член в противном случае.

Помочь в развитии проекта:
Закрыть X