Я работаю над проектом Angular, извлекающим данные из базы данных Firebase FireStore . Он работает нормально, но теперь я обнаружил проблему при попытке получить UID документов. Я постараюсь подробно объяснить свою ситуацию.
В моей БД FireStore есть что-то вроде этого:
введите описание изображения здесь
Итак, как вы можете видеть, на данный момент у меня есть только одна коллекция с именем calendar , содержащая некоторые документы, в которых каждый документ представляет событие в календаре (но эта деталь теперь не так важно).
В моем Angular приложении у меня есть класс обслуживания, содержащий этот метод, который просто выполняет запрос для извлечения всех документов из моей календарной коллекции:
/**
* Return the list of all the work shift related to all the person in the calendar:
*/
getEvents(): Observable<any[]> {
this.items = this.db.collection('calendar').valueChanges();
return this.items;
}
Итак, этот метод возвращает массив Observable для любых объектов.
Подписка на этот Observable в свой компонент Я получаю список документов, хранящихся в коллекция calendar в FireStore.
Я сделал таким образом (это фрагмент кода в моем файле машинописного текста компонента, вызывающем предыдущий метод обслуживания):
this.eventService.getEvents().subscribe(events => { this.events = events.map((event) => {
//console.log("START: ", event.start);
var date = event.start.toDate()
var hour = date.getHours();
var startDateAsString = this.fromDateToString(date);
event.start = startDateAsString;
if(hour === 7) {
event['backgroundColor'] = 'red';
}
else if(hour === 15) {
event['backgroundColor'] = 'green';
}
else if(hour === 23) {
event['backgroundColor'] = 'black';
}
console.log("EVENT: ", event);
return event;
})});
Итак, как вы можете видеть, я подписываюсь на предыдущий сервисный метод, выполняющий запрос, и я "повторяю" набор результатов запроса, используя оператор map () , строящий m y this.events массив. Он работает нормально.
Моя проблема: в этом контексте, как я могу получить UID каждого документа, полученного Firebase, чтобы добавить эту информацию к возвращаемой переменной event ?