У меня есть коллекции вроде:
categories (collection):
--id1 (ID od document)
----name: "Sport"
--id2
----name: "Hobby"
books (collection):
--id1 (ID od document)
----categories: [id1, id2]
----name: "Book title 1"
--id2
----categories: [id1]
----name: "Book title 2"
Мне нужно получить список книг, в которых будут доступны названия категорий, а не идентификаторы категорий, такие как:
books = [{
categories: ['Sport', 'Hobby'],
name: "Book title 1"
}, {
categories: ['Sport'],
name: "Book title 2"
}]
И я нене знаю, как получить названия категорий и поместить их в учебники.Пожалуйста, посмотрите на мой код ниже:
public getBooks(): Observable<any> {
return this.db
.collection('books')
.snapshotChanges()
.pipe(
map(books => {
return books.map(book => {
const transformedCategories = book.payload.doc.data()['categories'].map(categoryId => {
return this.db.collection('categories').doc(categoryId).snapshotChanges().pipe(
map(changes => {
return changes.payload.data()['name'];
}),
);
});
return {
id: book.payload.doc.id,
title: word.payload.doc.data()['title'],
categories: ???
};
});
})
);
}