пытаясь использовать регулярные выражения внутри firebase .where (), чтобы заполнить пользователей, но получить только сообщение об ошибке - PullRequest
0 голосов
/ 20 февраля 2020

В основном я работаю над клоном WhatsApp, и у меня возникла проблема при поиске по контактам текущего пользователя.

вот первый код

this._user.getContacts(this.el.inputSearchContacts.value);

этот внутри функция, которая, когда вы нажимаете любую букву или цифру, когда ввод находится в фокусе, начинает отправлять то, что находится внутри ввода, в функцию «getContacts» это получить имя, которое вы вводите во вход, и сопоставить его с именами контактов в списке контактов пользователя, чтобы показать только те из них, которые соответствуют, но вот где эта ошибка появляется:

Uncaught (in promise) FirebaseError: Invalid query. Null supports only equality comparisons.
    at new FirestoreError (webpack:///./node_modules/@firebase/firestore/dist/index.cjs.js?:351:28)
    at Function.FieldFilter.create (webpack:///./node_modules/@firebase/firestore/dist/index.cjs.js?:9830:23)
    at CollectionReference.Query.where (webpack:///./node_modules/@firebase/firestore/dist/index.cjs.js?:22151:34)
    at eval (webpack:///./src/model/User.js?:87:41)
    at new Promise (<anonymous>)
    at User.getContacts (webpack:///./src/model/User.js?:85:14)
    at HTMLInputElement.eval (webpack:///./src/controller/WhatsAppController.js?:401:20)
FirestoreError @ index.cjs.js:351
FieldFilter.create @ index.cjs.js:9830
Query.where @ index.cjs.js:22151
eval @ User.js:87
getContacts @ User.js:85
eval @ WhatsAppController.js:401

так, кто-то может сказать мне, что я делаю не так?

1 Ответ

1 голос
/ 20 февраля 2020

То, что вы пытаетесь сделать, не поддерживается. Firestore вообще не предлагает поиск по регулярным выражениям. Вы можете сравнивать только строки с >=, == и <=.

. В сообщении об ошибке сообщается, что ваше тройное выражение:

(fillter)? fillter.match( /([a-z])\+w/gi) : fillter

дает нулевое значение, которое не является допустимым значением для >= сравнения, которое вы просите Firestore выполнить на поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...