Я пытаюсь прочитать «публикации» из моей базы данных Firebase, а затем отобразить их в Angular!
Итак, я сделал модель "публикации" в угловом формате и пытаюсь получить базу данных "публикации", используя мой сервис.
Это моя структура базы данных:
![enter image description here](https://i.stack.imgur.com/3WuF8.png)
служба, которую я использовал: публикации.service.ts
publications: Publication[] = [];
PublicationsSubject = new Subject<Publication[]>();
emitPublications() {
this.PublicationsSubject.next(this.publications);
console.log("in emit ", this.publications)
}
getPublications() {
firebase.database().ref('/publications')
.on('value', (data: firebase.database.DataSnapshot) => {
this.publications = data.val() ? data.val() : [];
this.emitPublications();
}
);
}
модель «публикация»:publishing.model.ts
export class Publication {
date_parution: string ;
numero: string ;
sommaire: string ;
tags: string ;
titre: string ;
titre_short: string ;
URL_achat: string ;
URL_couv: string ;
constructor(date_parution : string ,numero :string , sommaine : string , tags : string , titre : string , titre_short : string ,
URL_achat: string , URL_couv: string ){
}
}
компонент, где я хочу отобразить данные publishing-list.componenet.ts
Publications: Publication[];
PublicationsSubscription: Subscription;
constructor(private PublicationsService: PublicationsService , private router: Router) {}
ngOnInit() {
this.PublicationsSubscription = this.PublicationsService.PublicationsSubject.subscribe(
(publications: Publication[]) => {
this.Publications = publications;
}
);
this.PublicationsService.emitPublications();
}
Проблемаявляется то, что я не мог преобразовать объект Publication (тот, который я получил из firebase) в массив публикации, как модель, которую я сделал с машинописным шрифтом, и потому, что формат объекта { String , Publication }
, и в этом случае строка являетсяID в базе данных Firebase
Любая помощь, пожалуйста?