如何使用文本搜索查询 firebase 数据库

How can I query firebase database with text search

在我制作的 android 应用程序中,我实现了一个搜索栏,因此用户可以输入一些内容,希望在数据库中找到它。我已经设置好了,这样结果就会出现,但前提是它拼写得完美而完整。我想这样做,以便它可以在用户输入时显示结果,即使它拼写错误并且只是相似。我已经阅读了 firebase 库可能的内置查询选项,但它们似乎不支持我正在寻找的内容。有什么方法可以相对简单地将其添加到我的项目中吗?我知道预测文本搜索不是简单地创建的,但是有一些我可以导入的库吗?

您可以使用

搜索字符串
databaseReference.orderByChild('_searchLastName')
         .startAt(queryText)
         .endAt(queryText+"\uf8ff")
         .addValueEventListener ...

根据 Martin 的回答,如果你想显示即使他们有一点偏差我会做的是过滤。

databaseReference.orderByChild('_searchLastName')
     .startAt(queryText)
     .limitToFirst(10) //return 10 results
     ...

我假设您可以转换为字符串列表,这将为您提供从您的查询开始的所有结果以及接下来的 9 个结果,这比您想要的要多。

从这里开始,您想根据 contains 或 startsWith

进行过滤
public List<String> filter(List<String> listToFilter, String query){
    List<String> results = new ArrayList();
    for( String string : listToFilter){
        if(string.startsWith(query){//or contains
            results.add(string);
        }
    }
    return results
}