tutorial google firestore español java firebase google-cloud-firestore

java - español - firestore google



Firestore consulta documentos comienza con una cadena (2)

Lo mismo que respondió Gil Gilbert. Sólo una mejora y un código de ejemplo. use String.fromCharCode y String.charCodeAt

var strSearch = "start with text here"; var strlength = strSearch.length; var strFrontCode = strSearch.slice(0, strlength-1); var strEndCode = strSearch.slice(strlength-1, strSearch.length); var startcode = strSearch; var endcode= strFrontCode + String.fromCharCode(strEndCode.charCodeAt(0) + 1);

luego filtre el código como abajo.

db.collection(c) .where(''foo'', ''>='', startcode) .where(''foo'', ''<'', endcode);

Funciona en cualquier idioma y cualquier Unicode.

Advertencia: todos los criterios de búsqueda en firestore son SENSIBLES AL CASO.

¿Es posible consultar una colección de firestore para obtener todo el documento que comienza con una cadena específica?

He revisado la documentación pero no encuentro ninguna consulta adecuada para esto.


Puedes pero es complicado. Debe buscar documentos mayores o iguales a la cadena que desea y menos que una clave sucesora.

Por ejemplo, para buscar documentos que contengan un campo ''foo'' mirando con ''bar'' , debe consultar:

db.collection(c) .where(''foo'', ''>='', ''bar'') .where(''foo'', ''<'', ''bas'');

Esta es en realidad una técnica que usamos en la implementación del cliente para escanear colecciones de documentos que coinciden con una ruta. A nuestro scanner clave de sucesión lo llama un scanner que está buscando todas las claves que comienzan con la identificación del usuario actual.