Good I am new using firebase, what I have now is "component" and activities, an activity leads as a reference to a component:
What I want to do is a component I list all its activities, I use angular-firebase 2, my service of my test project:
import { Injectable, Component } from '@angular/core';
import { actividades } from '../modelos/actividades';
import { AngularFirestoreCollection, AngularFirestore, AngularFirestoreDocument, DocumentChangeAction } from 'angularfire2/firestore';
import { Observable } from 'rxjs';
import { incidencias } from '../modelos/incidencias';
import { AngularFireDatabase } from '@angular/fire/database';
import { map } from 'rxjs/operators';
@Injectable({
providedIn: 'root'
})
export class ActividadService {
private MensajeCollections: AngularFirestoreCollection<actividades>
private extendedItems = new Array<any>()
constructor(private afs: AngularFirestore, private db: AngularFireDatabase) {
this.MensajeCollections = this.afs.collection<actividades>('actividades')
}
getActividadesOtro() {
this.db.list<actividades>("actividades").valueChanges().subscribe(p =>
console.log(p))
}
update(actividad: actividades) {
this.afs.collection("actividades").doc(actividad.id).update(actividad)
}
setActividad(actividad: actividades) {
let componenteRef = this.afs.collection("componente").doc("4SQfAXVLXfdCgXZNF22J").ref
this.MensajeCollections.add({ actividad: "es una actvidad con referncuas", componente: componenteRef });
}
getAllActividadesFindComponent() {
let ref = this.afs.collection("componente").doc("4SQfAXVLXfdCgXZNF22J").ref
this.afs.collection<actividades>("actividades").valueChanges().subscribe(p => {
console.log(p)
})
//console.log(this.afs.collection<actividades>("componente").doc("4SQfAXVLXfdCgXZNF22J").ref.collection("actividades"));
}
getActividades(): Observable<actividades[]> {
return this.afs
.collection<actividades>('actividades')
.snapshotChanges().pipe(map(actions => actions.map(a => {
const data = a.payload.doc.data() as actividades;
const id = a.payload.doc.id;
return { id, ...data }
})))
}
setIncidenciaFindIdActividad(idActividad: string, incidencias: incidencias) {
this.afs.collection<incidencias>("actividades").doc("k3wFEO4sqpMthu66SXRc").ref.collection("incidencias").add(incidencias);
}
getIncidenciaFindId(id: string): Observable<incidencias[]> {
return this.afs.collection<incidencias>("actividades").doc("AI1FndqLjOsY2euMStua").collection("incidencias")
.snapshotChanges().pipe(map(actions => actions.map(a => {
const data = a.payload.doc.data() as incidencias;
const id = a.payload.doc.id;
return { id, ...data }
})))
}
}
some way to do it?