首页 > 解决方案 > 展开 Firestore 搜索

问题描述

您好,我需要以某种方式在文档中搜索其他属性。

我有这个参考,可以根据它获取文档,name_lowercase但我也需要搜索该symbol属性。

const dbRef = db.collection("content")
        .where('name_lowercase', '>=', searchTerm.toLowerCase())
        .where('name_lowercase', '<=', searchTerm.toLowerCase() + '~');

所以我也需要这样的东西。

const dbRef = db.collection("content")
        .where('symbol', '>=', searchTerm.toLowerCase())
        .where('symbol', '<=', searchTerm.toLowerCase() + '~');

我应该只做一个承诺并显示结果吗?或者,还有更好的方法?

标签: javascriptgoogle-cloud-firestore

解决方案


无法使用 Firestore 跨多个字段执行范围查询。从其关于查询限制的文档中:

在复合查询中,范围 ( <, <=, >, >=) 和不等于 ( !=, not-in) 比较必须都过滤同一字段。

因此,您可以让数据库在一个字段上执行查询,并在应用程序代码中执行其余的过滤器,或者您可以为此类文本搜索集成单独的解决方案,例如 Firebase全文文档中所示搜索


推荐阅读