如何在Firebase数据库中实现类似于SQL查询的字符串搜索:
SELECT select_column from table_name where search_column LIKE '%search_word%'
答案 0 :(得分:2)
Firebase本身不支持文本搜索。使用此hack可以实现与查询最接近的部分字符串匹配:
FirebaseDatabase.getInstance().getReference(table_name).orderByChild(select_column).startAt(search_word).endAt(search_word + "~");
任何可打印字符的~
字符has the highest ASCII value,因此查询结果是以select_column
开头的search_word
的所有情况。
如果您需要更高级的搜索或匹配条件,则必须使用或编写全文搜索解决方案。 ElasticSearch是Firebase的热门用户。 Flashlight是一个Node.js模块,它直接在数据库中合并这两个模块。 (请注意,现在可以将Flashlight部署到Firebase Functions而不是推荐的Heroku配置。)