Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase Firestore查询结果问题(有时结果包含连续文档,有时不相关的结果)_Firebase_Flutter_Google Cloud Firestore - Fatal编程技术网

Firebase Firestore查询结果问题(有时结果包含连续文档,有时不相关的结果)

Firebase Firestore查询结果问题(有时结果包含连续文档,有时不相关的结果),firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,我有用户集合和六个文档。每个文档都有一个字符串displayname字段。 我的用户显示名称 aaaa bbbb 艾哈迈特·迈赫迈特 asdf 班固 伯克图格 卡格达斯 当query=aaaa时,用户有6个快照。所有用户 当query=bengu时,用户有3个快照bengu, 伯克图格,卡格达斯 当query=mehmet时,用户没有任何快照。我的第一个用户 显示名称是ahmet mehmet Firestore查询结果,有时包含连续的文档,有时包含不相关的结果。实际上,显示名包含一些土耳其语字

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

aaaa bbbb 艾哈迈特·迈赫迈特 asdf 班固 伯克图格 卡格达斯 当query=aaaa时,用户有6个快照。所有用户 当query=bengu时,用户有3个快照bengu, 伯克图格,卡格达斯 当query=mehmet时,用户没有任何快照。我的第一个用户 显示名称是ahmet mehmet Firestore查询结果,有时包含连续的文档,有时包含不相关的结果。实际上,显示名包含一些土耳其语字符,但我更改了它以解决问题。但是我没有


谢谢

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

对于mehmet值,没有与查询匹配的文档,因为按照字母顺序,mehmet位于cagdas之后

如果您尝试使用query=ahmet-mehmet,您将得到5个结果

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

final usersRef = Firestore.instance.collection('users');

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