Вы можете получить объект или список из базы данных, используя функцию списка или объекта на AngularFireDatabase
. У вас есть FirebaseListObserver
с массивом объектов предопределенного (нестандартного) класса.
Вам необходимо вручную сопоставить результаты, полученные из базы данных в FirebaseListObservable, с массивом объектов вашего пользовательского класса.
Я полагаю, что ваша функцию, чтобы получить свои герой из базы данных выглядит следующим образом:
myHeroes(): FirebaseListObservable<Hero[]> {
return this.db.list('heroes');
}
Вы можете отобразить результат в массив пользовательского класса под названием Heroes. Вы можете использовать лямбда-выражение или передать функцию в качестве параметра (этот пример).
myHeroes(): Observable<Hero[]> {
return this.db.list('heroes').map(Hero.fromJsonList);
}
В случае, если вы получаете сообщение об ошибке, что карта не является функцией, добавить import "rxjs/add/operator/map";
В классе Hero добавить эти две статические функции:
static fromJsonList(array): Hero[] {
return array.map(Hero.fromJson);
}
//add more parameters depending on your database entries and Hero constructor
static fromJson({id, name}): Hero {
return new Hero(id, name);
}