Flutter Firebase - 搜索包含以下字符串的文档

时间:2021-04-10 17:46:46

标签: firebase flutter dart google-cloud-firestore

我有一个关于使用 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”来处理请求?

1 个答案:

答案 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();

我根据您的示例设置了变量名称。