我有一个关于使用 Flutter 项目中的特定参数从 Google Cloud Firestore 检索数据的请求的问题。
我使用以下代码检查 Firebase 中的字符串是否等于用户执行的搜索查询:
var snapshot = await firestoreInstance.collection('categories/subcategory/items')
.where("parameter", isEqualTo: searchQuery).get()
如果用户准确键入存储在 Firestore 中的参数的名称,则此方法有效。但我想要的是,如果只有部分 searchQuery 字符串存储在 Firestore 参数中,它也能工作。
我在 https://medium.com/flutterdevs/implement-searching-with-firebase-firestore-flutter-de7ebd53c8c9 上找到了解决方案。在文章中创建了一个数组,其中包含对参数的所有可能搜索。但我认为这有点复杂,您必须在 Firestore 中生成大量新数据才能搜索文章。
有没有办法以更简单的方式执行此操作,以便您可以在 Flutter 和 Firebase 中使用运算符作为“包含”而不是“isEqualTo”来处理请求?
答案 0 :(得分:-1)
试试这个:
var snapshot = await firestoreInstance
.collection('categories/subcategory/items')
.where(
'parameter',
isGreaterThanOrEqualTo: searchQuery,
isLessThan: searchQuery.substring(0, searchQuery.length - 1) +
String.fromCharCode(searchQuery.codeUnitAt(searchQuery.length - 1) + 1),
)
.get();
我根据您的示例设置了变量名称。