首页 > 解决方案 > Firestore 查询结果问题(有时结果包含连续的文档,有时是不相关的结果)

问题描述

我有用户集合和六个文档。每个文档都有一个字符串显示名称字段。我的用户显示名称

  1. “啊啊啊啊啊”
  2. “艾哈迈德·穆罕默德”
  3. “自卫队”
  4. “本古”
  5. “伯克图格”
  6. “卡达斯”
final usersRef = Firestore.instance.collection('users');

  handleSearch(String query) {
    Future<QuerySnapshot> users = usersRef
        .where("displayName", isGreaterThanOrEqualTo: query.toLowerCase())
        .getDocuments();
    setState(() {
      searchResultsFuture = users;
    });
  }

Firestore 查询结果,有时包含连续文档,有时包含不相关的结果)。实际上显示名称包含一些土耳其字符,但我更改了它以解决问题。但我没有。

谢谢

标签: firebasefluttergoogle-cloud-firestore

解决方案


您得到的结果是正确的:您的查询将整个字符串与Firestore 数据库query.toLowerCase()中字段的整个值进行比较。displayName该查询不比较query.toLowerCase()值或displayName字段值的任何子字符串。

mehmet值的情况下,没有与查询匹配的文档,因为按字母顺序,mehmet在 之后cagdas

如果您尝试使用 query="ahmet mehmet",您将获得 5 个结果。


如果您正在寻找全文搜索机制,请查看此文档本文


推荐阅读