чтобы ответить на ваш вопрос: да, это нормальное поведение.
Поскольку Firebase - это база данных в реальном времени, она хочет отслеживать любой запрошенный вами путь и видеть, изменился ли он (независимо от того, откуда пришло изменение, вы или ваш пользователь)
Я не уверен, что вы пытаетесь сделать с объектами, возвращаемыми впоследствии, но так как код очень незначительный, я бы ожидал, что вам просто нужно отобразить его в некотором списке с его значениями ...
Так что я бы написал что-то вроде этого, где вы все еще можете получить доступ к каждому элементу в Array
, как будто это object
:
# course.model.ts
export class courseModel {
title: string = "";
price: string = "";
author: string = "";
}
# app.component.ts
import { Component } from '@angular/core';
import { AngularFireDatabase, AngularFireList } from 'angularfire2/database';
import { Observable } from 'rxjs';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
courses : Observable<courseModel[]> = new courseModel();
constructor(db: AngularFireDatabase) {
this.courses = db.list('/courses').valueChanges();
}
}
# app.html
<p *ngFor="let course of courses | async">
{{ course.title }}
{{ course.author }}
{{ course.price }}
</p>