¿Cómo hacer una búsqueda simple en cadena en la base de datos Firebase?

Quiero crear una búsqueda simple en mi aplicación, pero no puedo encontrar nada en interwebs sobre ella, que es más reciente que 2014. Debe haber una manera mejor. Hay funciones startAt y endAt, pero no funcionan como se esperaba y distinguen entre mayúsculas y minúsculas. ¿Cómo resuelven ustedes este problema? ¿Cómo puede esta funcionalidad todavía no existe en 2016?

En mi caso pude lograr en parte un SQL LIKE de la siguiente manera:

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

El carácter \uf8ff utilizado en la consulta es un punto de código muy alto en el rango Unicode (es un código de área de uso privado [PUA]). Porque es después de la mayoría de los caracteres normales en Unicode, la consulta coincide con todos los valores que comienzan con queryText .

De esta manera, buscar por "Fre" podría obtener los registros que tienen "Fred, Freddy, Frey" como valor en la propiedad _searchLastName de la base de datos.

Firebase no tiene un gran SQL como búsquedas construido pulg Usted puede clasificar por valores / clave o puede igualar a

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

Puede encontrar ejemplos en el enlace anterior. Esa es la documentación más reciente para firebase.

Si está buscando SQL como búsquedas. A continuación, eche un vistazo a la búsqueda elástica. Pero eso aumentará la complejidad ya que se necesita una plataforma para ponerla. Para eso podría recomendar Heroku o tal vez GoogleCloudServers

Aquí hay una entrada en el blog sobre búsquedas avanzadas con búsqueda elástica https://firebase.googleblog.com/2014/01/queries-part-2-advanced-searches-with.html

No sé acerca de la certeza de este enfoque, pero con la versión firebase 10.2.6 en android, puedo hacer algo como esto:

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

Parece que funciona bien a veces

  • Google firebase - cómo compartir la base de datos con otras aplicaciones
  • ¿Cómo usar la marca de hora del servidor Firebase para generar la fecha creada?
  • Error de autenticación de Token Firebase
  • Android Firebase, simplemente obtiene los datos de un objeto secundario
  • Qué causa esta excepción java.lang.RuntimeException: java.lang.NoSuchMethodException: <init>
  • Firebase Offline Capabilities y addListenerForSingleValueEvent
  • FireBase Job Dispatcher. El trabajo comienza después de 20-60 seg, incluso con Triger.Now. ¿Cómo puedo arreglarlo?
  • Indexación de aplicaciones para contenido dinámico
  • Picasso no puede cargar imagen dentro del método onSuccess de StorageReference
  • Los eventos de análisis de Firebase no muestran valor
  • Cómo obtener la cadena de base de datos firebase en tiempo real que contienen en clave única
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.