如何使用 Firestore 在 Flutter 中搜索文本

Alp*_*hal 4 dart firebase flutter google-cloud-firestore

我想通过查询使用 Cloud Firestore 实现搜索功能,但没有获得与获取数据相关的任何查询。我在谷歌上搜索了很多东西,但唯一的建议是首先从云 Firestore 获取所有数据,然后在本地搜索。我已经检查了查询内部的 where 条件,但没有找到任何条件,例如“开始于”等。

在此输入图像描述

我想通过名称参数进行搜索。

在此输入图像描述

Fra*_*len 18

Firestore 没有内置的全文搜索功能。我通常用于搜索文本字段的唯一两个查询运算符是:

  • 用于isEqualTo:查找字段与值完全匹配的文档。

  • 使用isGreaterThanOrEqualTo:and isLessThanOrEqualTo:(或startAt:and endAt:)搜索字段以特定值开头的文档。

    例如,要搜索以name开头的所有文档al,您可以使用collectionRef.where("name", isGreaterThanOrEqualTo: "al").where("name", isLessThanOrEqualTo: "al\uf7ff")。这里\uf7ff只是最后一个已知的 Unicode 字符,因此查询在处理每个al.

如果您需要任何其他文本搜索操作,则需要使用其他产品 - 例如此处记录了该过程的产品。


Muh*_*far 5

这段代码对于使用 firestone flutter 搜索文本非常有帮助

 StreamBuilder(
    stream: ( searchtxt!= "" && searchtxt!= null)?FirebaseFirestore.instance.collection("addjop").where("specilization",isNotEqualTo:searchtxt).orderBy("specilization").startAt([searchtxt,])
        .endAt([searchtxt+'\uf8ff',])
        .snapshots()
        :FirebaseFirestore.instance.collection("addjop").snapshots(),
    builder:(BuildContext context,snapshot) {
      if (snapshot.connectionState == ConnectionState.waiting &&
          snapshot.hasData != true) {
        return Center(
            child:CircularProgressIndicator(),
        );
      }
      else
        {retun widget();
  }
})
Run Code Online (Sandbox Code Playgroud)