# #firebase #google-cloud-firestore
Вопрос:
Я создаю приложение, в котором я храню записи об автомобилях, и я создаю некоторые фильтры, чтобы найти автомобиль желания. Я создал фильтр для поиска автомобиля по его начальным совпадающим символам
пример
Если есть автомобиль с именем Audi
, и если я войду au
, это вернет мне автомобиль audi
db.collection('CARS')
.orderBy('carName')
.startAt('aud') // Looking for aud___
.endAt('auduf8ff')
.get()
.then((querySnapshot) => {...})
.catch(error => {
console.log(error);
});
В этом коде я нахожу автомобиль, помещая car name
и запрос, чтобы найти данные, первые символы которых совпадают с карнамом
Я хочу почти то же самое в другом запросе, но если я введу какое-то значение, и запрос выдаст мне автомобиль, сопоставив его последние символы
пример
Если у меня есть автомобиль BMW и если я войду MW
, то запрос вернет мне автомобиль BMW
Как я могу найти машину, сопоставив последние символы car Name
Ответ №1:
В Firestore нет оператора запроса для поиска с конца строки, поддерживается только поиск по префиксам.
Самый простой способ реализовать этот вариант использования в Firestore-сохранить обратное строковое значение и выполнить поиск по нему.
Поэтому создайте поле reversedCarName
и сохраните idua
там для audi
. Имея это на месте, вы можете искать с конца с помощью:
db.collection('CARS')
.orderBy('reversedCarName')
.startAt('i') // Looking for ___i
.endAt('iuf8ff')
Комментарии:
1. Блестящий подход!