Хорошо, наконец-то понял это.
Вот рабочий код для любого, кто сталкивается с подобной проблемой:
import { Component } from '@angular/core';
import { Observable} from 'rxjs';
import { AngularFireDatabase, AngularFireList } from 'angularfire2/database';
import { map } from 'rxjs/operators';
import { LogoComponent } from './logo.component';
@Component({
selector: 'app-navigation',
templateUrl: './navigation.component.html'
})
export class NavigationComponent {
items: Observable<any[]>;
childItems: Observable<any[]>;
constructor(db: AngularFireDatabase) {
this.items = this.getNavigation(db);
this.childItems = this.getNavigation(db);
}
getNavigation(db: AngularFireDatabase): any {
return db.list('/pages', ref => {
let query = ref.limitToLast(100).orderByChild('sortOrder');
return query;
}).snapshotChanges().pipe(
map(pages => {
return pages.map(p => ({ key: p.key, ...p.payload.val() }));
})
);
}
}
Чтобы обойти ошибку машинописного текста, мне пришлось ввести параметр db
getNavigation
.
Затем мне пришлось удалить ненужную функцию подписки, которая была показана как в ответах на этот вопрос, так и в миграционных документах AngularFire.Хотя это может быть необходимо в некоторых случаях, но не в моем.