我正在关注AngularFire2 doc为我的项目设置Firebase。我无法从数据库中检索任何数据。
contacts:Observable<any[]>;
constructor(angularFire: AngularFirestore, public http: Http) {
this.contacts = angularFire.collection('mycontacts').valueChanges()
console.log("Contacts : "+ this.contacts)
}
我的Firebase JSON结构如下:
"mycontacts" : {
"Contacts" : {
"John" : {
"Address" : "3 London Road",
"Email" : "john@hotmail.com",
"FirstName" : "John",
"LastName" : "Snow",
"PhoneNo" : "074236482878"
}}}
结果:
答案 0 :(得分:0)
正如您正确定义的那样,组件中的contacts
属性为Observable
。因此,简单地console.log
ging它不会为您提供您正在寻找的数据。如果您想要提取组件内的数据,那么您必须使用subscribe
订阅它
angularFire.collection('mycontacts').valueChanges().subscribe((data) => {
this.contacts = data;
});
话虽如此,如果只想在页面(模板)上显示数据,那么您只需使用async
管道在页面上异步显示Observable数据。
this.contacts = angularFire.collection('mycontacts').valueChanges(); // same code you had
在模板中,使用管道,例如
<div *ngFor="let contact of contacts | async" [innerHTML]="contact"></div>
希望它有所帮助。