studio recuperar query guardar from datos data consultas android firebase firebase-realtime-database

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



query firebase android (5)

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

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

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 privada [PUA]). Debido a que está después de la mayoría de los caracteres regulares en Unicode, la consulta coincide con todos los valores que comienzan con queryText .

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

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


Esta pregunta puede ser antigua pero hay una forma documentada de cómo lograrlo de esta manera. Es fácil de implementar. Quoted

Para habilitar la búsqueda de texto completo de sus datos de Cloud Firestore, use un servicio de búsqueda de terceros como Algolia. Considere una aplicación para tomar notas donde cada nota es un documento:

Algolia formará parte de sus firebase functions y hará todas las búsquedas que desee.

// Update the search index every time a blog post is written. exports.onNoteCreated = functions.firestore.document(''notes/{noteId}'').onCreate(event => { // Get the note document const note = event.data.data(); // Add an ''objectID'' field which Algolia requires note.objectID = event.params.noteId; // Write to the algolia index const index = client.initIndex(ALGOLIA_INDEX_NAME); return index.saveObject(note); });

Para implementar la búsqueda, la mejor manera es usar la búsqueda instantánea - android

Imagen de búsqueda de muestra: GIF


Firebase no tiene un gran SQL como búsquedas incorporadas. Puede ordenar por valores / clave o puede igualar

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

Puedes encontrar ejemplos en el enlace de arriba. Esa es la última documentación para base de fuego.

Si buscas búsquedas tipo SQL. Entonces echa un vistazo a la búsqueda elástica. Pero eso aumentará la complejidad ya que necesita una plataforma para ponerla. Para eso podría recomendar Heroku o tal vez GoogleCloudServers

Aquí hay una publicación de 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é la certeza de este enfoque, pero al usar la versión 10.2.6 de base de fuego en Android, puedo hacer algo como esto:

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

Parece funcionar bien a veces


Yo usé mi estuche:

var query = ''text'' databaseReference.orderByChild(''search_name'') .startAt(`%${query}%`) .endAt(query+"/uf8ff") .once("value")

De esta manera, al buscar por "prueba" podría obtener los registros que tienen "Prueba 1, Concurso, Una prueba" como valor en la propiedad ''buscar'' de la base de datos.