я написал код, который отображал список новостей, который я сохранил в firestore, и все в порядке, но когда я нажимаю на кнопку сведений, чтобы показать подробности новостей, на консоли отображается ошибка, и она не отображаетсяподробно на странице сообщение об ошибке: DetailsPage_Host.ngfactory.js?[sm]: 1 ОШИБКА TypeError: Невозможно прочитать свойство 'doc' из неопределенного в DetailsPage.push ../ src / app / details / details.page.ts.DetailsPage.getEventDetail (details.page.ts: 57) в DetailsPage.push ../ src / app / details / details.page.ts.DetailsPage.ngOnInit (details.page.ts: 33)
мой код: news.page.html
<ion-content padding>
<ion-item *ngFor=" let count of news | async">
<h5>{{count?.title}}
<button routerLink="/details/{{count.id}} ">details</button>
<img src="{{count?.image}}">
</h5>
</ion-item>
</ion-content>
news.page.ts
import { Component, OnInit } from '@angular/core';
import {AngularFirestore, AngularFirestoreDocument} from 'angularfire2/firestore';
import {Observable} from 'rxjs';
import { Router } from '@angular/router';
import 'rxjs/add/operator/map';
export class NewsPage implements OnInit {
news: Observable<any[]>;
constructor(public db: AngularFirestore, private router: Router) { }
ngOnInit() {
this.news = this.db.collection('123').snapshotChanges().map(actions => {
return actions.map(a => {
const data = a.payload.doc.data();
const id = a.payload.doc.id;
return { id, ...data };
});
});
}
}
details.page.html
<ion-content padding >
${{currentEvent?.content}}
</ion-content>
details.page.ts
import { Component, OnInit, ɵConsole } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { AngularFirestore, AngularFirestoreDocument } from 'angularfire2/firestore';
import {Observable} from 'rxjs';
export class DetailsPage implements OnInit {
public eventListRef: firebase.firestore.CollectionReference;
public currentEvent: any = {};
constructor(private router: ActivatedRoute, private afs: AngularFirestore) {
}
ngOnInit() {
const newsId: string = this.router.snapshot.paramMap.get('id');
console.log(newsId);
this.getEventDetail(newsId).get().then(eventSnapshot => { //the error message 33 is Here
this.currentEvent = eventSnapshot.data();
this.currentEvent.id = eventSnapshot.id;
});
}
getEventDetail(newsId: string): firebase.firestore.DocumentReference {
return this.eventListRef.doc(newsId);**//the error message 57 is Here**
}
}
Как я могу решить эту проблему ??