2017-08-14 61 views
-2

在我正在制作的Android应用程序中,我实现了一个搜索栏,以便用户可以输入某些内容以希望在数据库中找到它。我已经建立了这样的结果,但只有完全完整地拼写出来。我想这样做可以在用户输入时提供结果,即使它拼写错误且类似。我已阅读了有关Firebase库中可能的内置查询选项,但他们似乎并不支持我在寻找的内容。有什么方法可以相对简单地将其添加到我的项目中?我了解预测文本搜索不是简单创建的,但是有一些我可以导入的库?如何通过文本搜索查询firebase数据库

回答

1

大厦关闭马丁的答案的搜索字符串,如果你想显示即使是关闭的一点就是我会做的是过滤器。

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

我认为你可以直接转换成字符串列表,这会给你所有的开始你的查询和下一个9比你想要的更多的结果。

从这里,要筛选基础上或者包含或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 
} 
1

可以使用

databaseReference.orderByChild('_searchLastName') 
     .startAt(queryText) 
     .endAt(queryText+"\uf8ff") 
     .addValueEventListener ...