Некоторое время я использую 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);
Но не работает.
Ответ 1 · рейтинг 32 · Joan P.
Чтобы решить эту проблему, вам нужно изменить функцию orderByChild на orderBy. Поэтому используйте следующий код:
ref.collection('user').orderBy('name').startAt(name).endAt(name+'\uf8ff')
Ответ 2 · рейтинг 6 · Dan McGrath
Не существует эквивалента LIKE, но вы можете выполнять префиксную фильтрацию так же, как и в RTDB.
Написанный вами запрос такой же, как equals. Вам нужно проделать то же самое, и сделать чуть меньше <.
Ответ 4 · рейтинг 2 · kevinH
К вашему сведению: в более поздних версиях облачного хранилища (например, 0.12.5) методы startAt () и endAt () требуют списка строк, а не одной строки.