Я борюсь с AngularFire в проекте Angular, пытаясь выполнить запрос к базе данных FireStore, который извлекает все документы в коллекции и соответствующий UID.
Обычно у меня следующая ситуация:
введите описание изображения здесь
Итак, как вы можете видеть, на данный момент у меня есть только одна коллекция с именем calendar, содержащая некоторые документы, где каждый документ представляет собой событие в календаре (но эта деталь сейчас не так важна).
В моем Angular приложении у меня есть класс обслуживания, содержащий этот метод, который просто выполняет запрос для извлечения всех документов из моей коллекции календаря с помощью метода snapshotChanges () , чтобы сохранить весь снимок, включая UID и данные :
getEvents(): Observable<any[]> {
this.items = this.db.collection('calendar').snapshotChanges();
return this.items;
}
Затем в код TypeScript компонента я подписываю объект Observable возвращается предыдущим методом, чтобы построить объект, содержащий UID и данные. Я сделал это следующим образом:
this.eventService.getEvents().subscribe(eventsSnaps => {
this.events = eventsSnaps.map(currentCourseSnap => {
console.log("DOCUMENT ID: ", currentCourseSnap.payload.doc.id);
var currentCourse = {
id: currentCourseSnap.payload.doc.id,
...currentCourseSnap.payload.doc.data
}
})
console.log("EVENTS FROM SNAPS: ", this.events);
});
И здесь я получаю странное поведение.
Первый console.log () правильно распечатывает полученный UID всего документа, полученного из FireStore, но второй consle.log (), печатающий весь массив построенного объекта, извлекает массив undefined , в моей Chrome консоли я получаю этот вывод:
EVENTS FROM SNAPS: (16) [undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined]
Почему это не могу правильно построить мои объекты? Что случилось? Что мне не хватает? Как я могу решить эту проблему?