reference handling in firebase?

0

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?

    
asked by liryco 30.11.2018 в 19:51
source

0 answers