【发布时间】:2018-08-30 11:40:11
【问题描述】:
import { Component } from '@angular/core';
import { AngularFireDatabase, AngularFireList } from 'angularfire2/database';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
courses;
constructor(db: AngularFireDatabase) {
db.list('/courses').valueChanges()
.subscribe(courses => {
this.courses = courses;
console.log(this.courses);
});
}
}
预期行为: [对象,对象,对象,对象]
实际行为: [“课程 1”、“课程 2”、{...}、{...}]
上面的代码返回一个数组,但我期望的是一个对象数组。同样返回的类型,但 valueChanges() 是 Observable。我想知道它是 valueChanges() 的正常行为,即返回一个 Observable 作为对象以及一个数组。请帮帮我,告诉我我的代码哪里错了。我想要一个对象数组作为此代码的最终结果。
【问题讨论】:
-
你能告诉我们你的数据库的结构吗?
-
我想我找到了实际行为的原因。我将 JSON 文件导出到我的编辑器,当我看到它的结构时,它与我预期的有很大不同。就像下面 sn-p: { "courses" : [ null, "course1", "course2", { "author" : "Mosh Hamedani", "price" : 150, "title" : "course3" } ] } 我是 firebase 新手,请告诉我数据应该以面向对象的格式还是上面的格式存储。非常感谢您提供有关数据库的线索。
标签: firebase firebase-realtime-database angularfire2