Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Оператор SQL LIKE в Cloud Firestore?

Автор вопроса: ManjokОтветов: 4

Некоторое время я использую Firebase Real Time Fatabase, и сегодня я наткнулся на Cloud Firestore. Я не могу понять, как использовать оператор LIKE в Firestore.

База данных Firebase в реальном времени

ref.child('user').orderByChild('name').startAt(name).endAt(name+'\uf8ff')

В Cloud Firestore я пробовал

userRef.where('name', '>=', name); <br>
userRef.where('name', '<=', name);

Но не работает.

firebasegoogle-cloud-firestoredatabase

Ответы

Ответ 1 · рейтинг 32 · Joan P.

Чтобы решить эту проблему, вам нужно изменить функцию orderByChild на orderBy. Поэтому используйте следующий код:

ref.collection('user').orderBy('name').startAt(name).endAt(name+'\uf8ff')

Ответ 2 · рейтинг 6 · Dan McGrath

Не существует эквивалента LIKE, но вы можете выполнять префиксную фильтрацию так же, как и в RTDB.

Написанный вами запрос такой же, как equals. Вам нужно проделать то же самое, и сделать чуть меньше <.

Ответ 3 · рейтинг 2 · etrupja

Такого оператора нет, разрешены ==, <, <=, >, >=. Здесь вы можете найти все ограничения запросов в облачном хранилище: https://firebase.google.com/docs/firestore/query-data/queries

Ответ 4 · рейтинг 2 · kevinH

К вашему сведению: в более поздних версиях облачного хранилища (например, 0.12.5) методы startAt () и endAt () требуют списка строк, а не одной строки.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы