如何在Firebase数据库中进行简单的stringsearch?

我想在我的应用程序中创build一个简单的search,但不能在interwebs上find任何关于它的东西,这比2014年更新。必须有更好的方法。 有startAt和endAt函数,但它们不按预期工作,并区分大小写。 你们如何解决这个问题? 这个function在2016年如何还不存在?

  • Firebase云消息是免费的吗?
  • 如何使用Facebook身份validation确定Firebase用户是否已登录
  • 使用Firebase的聊天应用程序:收到新消息时收到通知 - Android
  • 检查用户是否在Android的Firebase Google身份validation中第一次被authentication
  • exceptionjava.lang.NoClassDefFoundError:pim
  • 如何解决有关导出的Firebase Messaging服务实现的android lint投诉?
  • 错误:无法parsing:com.twitter.sdk.android:twitter:2.3.0 - Android Studio
  • 当我尝试使用带通知的Google Analytics时,Firebase中没有静态方法zzUr()
  • 在我的情况下,我能够通过以下方式部分实现SQL LIKE:

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

    查询中使用的字符是Unicode范围内非常高的代码点(这是一个专用区域[PUA]代码)。 因为它在Unicode之后的大部分常规字符之后,查询匹配以queryText开始的所有值。

    这样,通过“Fre”search,我可以从数据库中获取具有“Fred,Freddy,Frey”的logging作为_searchLastName属性中的值。

    我不知道这种方法的确定性,但使用Android上的firebase版本10.2.6,我可以做这样的事情:

     firebaseDatabase.getReference("parent") .orderByChild("childNode") .startAt("[a-zA-Z0-9]*") .endAt(searchString) 

    它似乎有时运作良好

    Firebase没有像内置search那样的优秀SQL。您可以按值/键sorting,也可以等于

    https://firebase.google.com/docs/database/android/retrieve-data

    你可以在上面的链接find例子。 这是Firebase的最新文档。

    如果你正在寻找像search一样的SQL。 然后看看弹性search。 但是这会增加复杂性,因为你需要一个平台来把它放在上面。 为此,我可以推荐Heroku或者GoogleCloudServers

    这是一篇关于使用弹性search进行高级search的博客文章https://firebase.googleblog.com/2014/01/queries-part-2-advanced-searches-with.html