Я пытаюсь создать список "хлебных крошек", просматривая документы и захватывая их родителей. Моя структура данных выглядит так:
хранение-блок:
- parent: DocumentRef для другого блока хранения.
Я пытаюсь создать массив из дерева родителей одного юнита. Я пытаюсь использовать рекурсию, поскольку я предполагаю, что это самый простой способ сделать это. Я знаю без наблюдаемых, это было бы что-то вроде следующего:
// Unit is an observable returned by valueChanges()
recurseParents(unit){
if (unit === null) {
return;
}
// Titles array defined onInit in Angular
this.titles = [...unit, this.titles];
recurseParents(this.unitService.getUnitById(unit.parent));
}
С наблюдаемыми Angularfire2 я не уверен, как этого добиться. Я пытался выполнить шаги с одинаковыми ссылками в рамках подписки, и время от времени это вызывало странное поведение, даже выполнение .take (1) перед вызовом подписки.
Конечная цель - выглядеть так:
[{root parent}, {sub parent 1}, {sub parent 2}, {original document}]