Firebase Firestore查询结果问题(有时结果包含连续文档,有时不相关的结果)
我有用户集合和六个文档。每个文档都有一个字符串displayname字段。 我的用户显示名称 aaaa bbbb 艾哈迈特·迈赫迈特 asdf 班固 伯克图格 卡格达斯 当query=aaaa时,用户有6个快照。所有用户 当query=bengu时,用户有3个快照bengu, 伯克图格,卡格达斯 当query=mehmet时,用户没有任何快照。我的第一个用户 显示名称是ahmet mehmet 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查询结果,有时包含连续的文档,有时包含不相关的结果。实际上,显示名包含一些土耳其语字
谢谢您得到的结果是正确的:您的查询将整个字符串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;
});
}