ID динамического документа пожарного магазина - PullRequest
0 голосов
/ 23 сентября 2018

Как я могу сделать идентификатор этого документа в firestore QEoevSjHlswgk44nVTsr динамическим, то есть изменить в соответствии с идентификаторами в этой коллекции?Я использую angularfire2: ^ 5.0.0-rc.11

Вот что у меня есть:

firebase.service.ts

proyectos: Observable<Proyecto[]>;

getImagenDestacada() {
    this.proyectos = this.afs.collection('proyectos').doc('QEoevSjHlswgk44nVTsr').collection('archivos', ref => ref
    .orderBy('nombre','asc').limit(1)
    ).snapshotChanges().pipe(map(actions => {
      return actions.map(a => {
        const data = a.payload.doc.data() as Proyecto;
        const id = a.payload.doc.id; 
        return { id, ...data };
      });
    }));
    return this.proyectos
    }

========================

Я пробовал следующее:

firebase.service.ts

getImagenDestacada(id:string) {
this.proyectos = this.afs.collection('proyectos').doc(id).collection('archivos', ref => ref
.orderBy('nombre','asc').limit(1)
).snapshotChanges().pipe(map(actions => {
  return actions.map(a => {
    const data = a.payload.doc.data() as Proyecto;
    const id = a.payload.doc.id; 
    return { id, ...data };
  });
}));
return this.proyectos
}

portafolio.component.ts

archivos: Observable<Proyecto[]>;

this.archivos = this.fs.getImagenDestacada(this.id);

Но я получаю следующую ошибку:

Ошибка: функция CollectionReference.doc () требует, чтобы ее первый аргумент имел тип string, но это было: undefined

1 Ответ

0 голосов
/ 24 сентября 2018

Попробуйте это: const id = a.payload.doc.id.toString ();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...