当前位置: 首页 > 知识库问答 >
问题:

Firebase查询"其中包含字符串"

沈鸿光
2023-03-14

我试图在Flatter Firebase中执行一个“where”查询,以按名称进行过滤(如果对象名为“Una casa roja”,用户写“casa”,则必须返回该对象)。我不知道我能问谁。我只有这个,但不是我想要的:

.where('nombre', isGreaterThanOrEqualTo: nombre, isLessThan: nombre + 'z')

谢谢

共有1个答案

东郭淇
2023-03-14

缺省情况下,FiRest不支持文本搜索。但是,有一些变通方法。

您可以通过拆分名称字符串来做到这一点。

setSearchParameters(String name) {
        List<String> searchOptions = [];
        String temp = "";
        for (int i = 0; i < name.length; i++) {
          temp = temp + name[i];
          searchOptions.add(temp);
        }
        return searchOptions;
  }

然后,您可以通过使用arrayContains在该数组中搜索来查询用户集合,如下所示:

await usersCollection
        .where('searchOptions', arrayContains: searchText)
        .get()
        .then((value) =>
            value.docs.map((doc) => User.fromSnapShot(doc)).toList());

此解决方案适用于简单的情况,但如果您需要高级搜索功能,则必须使用Agolia等第三方服务。

 类似资料:
  • 问题内容: 我正在使用SQLAlchemy和SQLite3构建查询,其中我想选择其中String列包含特定子字符串的行。做到这一点的最佳方法是什么? 问题答案: 筛选。还有一个不区分大小写的搜索。 对于更高级的界面,您可以允许使用已知的“ dir”通配符。 笔记: 和是(如果数据库是由另一个应用程序创建的,则SQLSoup很有用) 对于SQLAlchemy Core是。当您需要原始SQL的所有功能

  • 我的Firebase查询有点麻烦。我想查询objects,其中objects子值包含某个字符串。到目前为止,我有一些东西看起来是这样的: 但这只给出起始值为“b”的对象。我想要包含字符串“b”的对象。我该怎么做?

  • 问题内容: 我一直在尝试找出如何使用MySQL进行查询的方法,该查询检查特定列中的值(字符串)是否包含某些数据(字符串),如下所示: 在PHP中,该函数称为,因此可能: 问题答案: 实际上很简单: 的是用于设置任何字符(无,一个或多个)的通配符。请注意,这在非常大的数据集上可能会变慢,因此,如果数据库增长,则需要使用全文索引。

  • 问题内容: 我想找到一个SQL查询来查找其中field1不包含$ x的行。我怎样才能做到这一点? 问题答案: 这是什么领域?IN运算符不能与单个字段一起使用,而应与子查询或预定义列表一起使用: 如果要搜索字符串,请使用LIKE运算符(但这会很慢): 如果将其限制为要搜索的字符串必须以给定的字符串开头,则可以使用索引(如果该字段上有索引)并且速度相当快:

  • 我们在代码中创建查询,方法是在查询的语法中连接字符串,就像创建一个节点一样,查询中的所有属性都是在运行时添加的。 查询在代码中如下所示,其中 节点标签=字符串 properties = JSONObject 执行查询创建时出错因为它不允许在java代码中的查询中使用撇号(')。 在neo4j浏览器上执行相同的查询,但在尝试代码时没有执行相同的查询。 如何解决这个问题并允许同样的情况。 问题2 :-

  • 我知道拆分字符串并使用运算符是可能的,但我想知道是否可以使用字符串比较轻松地完成。