У меня есть проект, в котором я пытаюсь эмулировать доски trello, моя основная коллекция - это доски, а мой документ и подколлекция - это карточки.
Я пытался следовать документации инекоторые сообщения здесь, но мне все еще трудно извлечь данные из вложенной коллекции документа.
Я использую Firestore (автоматический идентификатор в коллекции и документах) / Angularfire.
В моем коде нет ошибок, однако всякий раз, когда я проверял консоль, она выдает пустой массив.
Я следовал документации на angularfire2 о том, как подписаться, используя snapshotchanges.
вот мой сервисный код для подколлекции: notes:
qboardtask - это моя основная коллекция;
qboardTaskID - это буквально то, что я поместил, вероятно, именно здесь моя проблема;
подзадача - это имямоя подколлекция
subtaskcollection:AngularFirestoreCollection<subtaskmodel>;
subtasks:Observable<subtaskmodel[]>;
subtaskDoc:AngularFirestoreDocument<subtaskmodel>;
constructor(public subtasklist : AngularFirestore) { }
getsubtask(){
this.subtaskcollection = this.subtasklist.collection('qboardtask').doc('qboardtaskID').collection('subtask');
//or
this.subtasks = this.subtasklist.collection('qboardtask/${qboardtaskID}/subtask').snapshotChanges().pipe(map(changes=>{
return changes.map(a=>{
const data=a.payload.doc.data () as subtaskmodel;
data.id=a.payload.doc.id;
return data;
})
}))
return this.subtasks;
Вывод на консоль
trelloboards.component.ts:39 Array(0)
Однако это не работает, и я получаю пустой массив в консоли