使firebase查询搜索不区分大小写

cap*_*fru 5 java android firebase firebase-realtime-database

我想从Firebase数据库中提取信息,但它是一个区分大小写的查询,我不希望它区分大小写,是否有办法使查询在Android Studio中不区分大小写,这是查询代码

DatabaseReference SearchRef = (DatabaseReference) FirebaseDatabase.getInstance().getReference().child("Child1").orderByChild("Child2").startAt(searchText).endAt(searchText + "\uf8ff"); // \uf8ff is a white space
    Query Searchquery = Searchref;
    Searchquery.addValueEventListener...
Run Code Online (Sandbox Code Playgroud)

Dis*_*ram 11

使用时Firebase Database,这是你从orderByChild()功能中获得的.它以升序或降序返回数据,您无法使用扩展查询自定义结果.

但是,您可以尝试一些可能更昂贵的其他东西.将所有孩子作为数组获取,保存Child2及其密钥.然后,您可以将字符串更改为大写或小写,并使用键访问所需的结果.

参考结果将是

FirebaseDatabase.getInstance().getReference("Child1").child(key);
Run Code Online (Sandbox Code Playgroud)

编辑

要添加逻辑,如果您想要"Dave"或"dave"返回Dave和dave您可以编辑您的查询startAt(text.toUppercase)endAt(text.toLowerCase+ "\uf8ff").这将返回DAVE,戴夫,戴夫等

  • 如果我什么都没错过,那么如果您在D和d +“ \ uf8ff”之间进行搜索,则会得到Dave和dave,但是您也会得到以E,F,G,...,Z,a,b开头的所有内容, C... (10认同)
  • 不敢相信 firebase 没有想到这一点 (4认同)