Проблема с результатами запроса Firestore (иногда результаты содержат продолжающиеся документы, иногда не относящиеся к делу результаты) - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть коллекция пользователей и шесть документов. Каждый do c имеет поле отображаемого имени String. Отображаемые имена моих пользователей

  1. "aaaa bbbb"
  2. "ahmet mehmet"
  3. "asdf"
  4. "bengu"
  5. "berktug"
  6. "cagdas"
final usersRef = Firestore.instance.collection('users');

  handleSearch(String query) {
    Future<QuerySnapshot> users = usersRef
        .where("displayName", isGreaterThanOrEqualTo: query.toLowerCase())
        .getDocuments();
    setState(() {
      searchResultsFuture = users;
    });
  }
  • при запросе = "aaaa" у пользователей 6 снимков (все пользователи)
  • когда запрос = "bengu" у пользователей есть 3 снимка ("bengu", "berktug", "cagdas")
  • когда запрос = "mehmet" у пользователей нет ни одного снимка. (мое первое отображаемое имя пользователя is "ahmet mehmet")

Результаты запроса Firestore, иногда содержат продолжающиеся документы, иногда не относящиеся к делу результаты). на самом деле отображаемые имена содержат некоторые символы turki sh, но я изменил их, чтобы решить проблему. но я не.

Спасибо

1 Ответ

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

Полученные результаты являются правильными: ваш запрос сравнивает всю строку query.toLowerCase() со всеми значениями поля displayName в вашей базе данных Firestore. В запросе не сравнивается ни одна подстрока значения query.toLowerCase() или значения поля displayName.

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

Если вы попытаетесь с запросом = "ahmet mehmet", вы получите 5 результатов.


Если вы ищете полный текст механизм поиска, посмотрите на эту документацию item или на эту статью .

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