Как я могу назначить SnapshotChanges в наблюдаемой переменной Firebase? - PullRequest
0 голосов
/ 24 апреля 2019

Я хочу загрузить все данные документа, но не могу получить доступ к идентификатору документа.Когда я печатаю объект this.ressobj, идентификатор виден, но когда я помещаю ressobj.id_doc в карту, идентификатор документа не отображается.

this.ResColeccion = this.resser.getSpecificlistRestaurants(this.id);
     this.ResObservable$ = this.ResColeccion.snapshotChanges().subscribe(usuariolista =>{
    this.ressobj=usuariolista.map(res =>{
 return{
   nombre:res.payload.doc.data().nombre,
   logo:res.payload.doc.data().logo,
   descripcion:res.payload.doc.data().descripcion,
   portada:res.payload.doc.data().portada,
   idadmin:res.payload.doc.data().idadmin,
   id_doc:res.payload.doc.id
 }
 
        });
        console.log(this.ressobj);
        
      });

КОД HTML

<ion-card *ngFor="let ressobj of ResObservable$ | async " [routerLink]="['/opcionesrestaurante',ressobj.id_doc]"  >
    
       
      
        <img src="{{ressobj.portada}}">
  
       
     <ion-card-content>
       
    
        <ion-card-title>
            <h1>{{ressobj.nombre}}</h1>
        </ion-card-title> 
      <p>{{ressobj.descripcion}}</p>
      </ion-card-content>
    </ion-card>

Спасибо за помощь

1 Ответ

1 голос
/ 24 апреля 2019

Не проверено, но я использовал что-то подобное для своих проектов angularfire2:

Получение документа:

const ResObservable$ = () => {
        return this.ResColeccion
          .snapshotChanges()
          .pipe(
            map(actions => {
              const data = actions.payload.data() as any;
              const uid = actions.payload.id;
              return { uid, ...data};
            })
          );
    }

ResObservable$.subscribe(item => console.log(item)) // or use async

Получение коллекции:

const ResObservable$ = () => {
    return this.ResColeccion
      .snapshotChanges()
      .pipe(
        map(actions => {
          return actions.map(a => {
            const data = a.payload.doc.data() as any;
            const uid = a.payload.doc.id;
            return { uid, ...data };
          });
        })
      );
}

ResObservable$.subscribe(items => console.log(items)) // or use async pipe
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...