Я очень новичок в машинописи / ионе 4. Я пытаюсь получить доступ к данным, хранящимся в firebase, и использовать их в своем файле машинописи. когда в .subscribe я могу отображать данные в соответствии с запросом. но это не то, что я ищу. Мне нужно выполнить расчет за пределами .subscribe на моей странице .ts.
Я видел много похожих проблем, но, похоже, не могу найти решение.
Вот мой Машинопись Файл служб
export interface Place{
title: string;
type: string;
latitude: number;
longitude: number;
}
export class PlaceService {
placess: Place[];
place: Place;
private placesCollection: AngularFirestoreCollection<Place>;
private places: Observable<Place[]>;
constructor(db: AngularFirestore) {
this.placesCollection = db.collection<Place>('places');
this.places = this.placesCollection.snapshotChanges().pipe(
map(actions =>{
return actions.map(a => {
const data = a.payload.doc.data();
const id = a.payload.doc.id;
return{ id, ...data};
});
})
);
}
getPlaces() {
return this.places;
}
}
и соответствующая часть на моей странице машинопись
import { PlaceService, Place } from '../services/place.service';
places: Place[];
ngOnInit() {
this.placeService.getPlaces()
.subscribe(res =>{
this.places = res;
console.log(this.places[0].title);//WORKS
});
console.log(this.places[0].title);//FAILED
}
Я получаю следующее сообщение об ошибке:
MapPage_Host.ngfactory.js? [sm]:1 ERROR TypeError: Cannot read property '0' of undefined