firestore fire angular firebase firebase-database observable angularfire2

firestore - Obtener el número de hijos para un nodo de Firebase usando AngularFire2?



angularfire2 npm (1)

No puede contar con AngularFire2 (sin cargar todos los elementos), pero puede usar la API REST:

this.http.get(''https://your-app-name.firebaseio.com/stages/stageOne.json?shallow=true'') .map(response => response.json()) .subscribe(items => Object.keys(items).length)

Usar shallow=true devolverá solo las claves para todos los niños del nodo ''seleccionado''.

Si desea cargarlos todos, puede usar list() :

this.stageOneObject = af.database.list(''/stages/stageOne'');

o transformar objeto a matriz:

this.stageOneObject = Object.keys(this.stageObject.stageOne) .map(key => this.stageObject.stageOne[key]);

Necesito contar la cantidad de nodos secundarios para múltiples subárboles en Firebase para mostrarlos en la vista. Por contexto, mi aplicación cuenta usuarios en diferentes etapas en un proceso.

Mi nodo raíz (etapas) tiene dos subárboles (stageOne, stageTwo). Cada subárbol contiene una cantidad variable de nodos secundarios que necesito contar y mostrar en la vista.

Base de datos:

stages |__stageOne | |__user1 | |__user2 | |__stageTwo |__user3

Componente:

stageObject: FirebaseObjectObservable<any>; constructor(public af: AngularFire){ this.stageObject = af.database.object(''/stages''); }

Ver (no se visualiza)

<h3>Stage 1 Count = {{ (stageObject | async)?.stages.stageOne.length }}</h3> <h3>Stage 2 Count = {{ (stageObject | async)?.stages.stageTwo.length }}</h3>

Ver (cómo debería verse):

Stage 1 Count = 2 Stage 2 Count = 1