erknrio
11/30/2017 - 4:19 PM

Angular Firestore sql like

Angular Firestore sql like

Introducción

Queremos realizar una consulta de estilo sql like %%. Firestore no soporta dicho tipo de consultas por defecto pero existe una aproximación que se puede usar para buscar cadenas dentro de un campo tipo string.

Obteniendo los datos del documento

var myCollection:any = this.afs.collection( 'collectionName', ref => ref.orderBy("english").startAt(term).endAt(term + '\uf8ff').limit(10) );

return wordsCollection.valueChanges();

Obteniendo los datos del documento y metada

Con este código, empleando un servicio podemos obtener tanto los datos del documento como el documentid.

Ejemplo completo.

var myCollection:any = this.afs.collection(
  'collectionName',
  ref => ref.orderBy("english").startAt(term).endAt(term + '\uf8ff').limit(10)
);

return wordsCollection.snapshotChanges()
.map(actions => {
  return actions.map(a => {
    const data = a.payload.doc.data() as Word
    const documentId = a.payload.doc.id;

    return { documentId, data };
  });
});

Documentación empleada