AngularFIRE Property'subscribe'on type'AngularFireList <{}>'
问题描述:
我跟随this tutorial关于如何连接angular与firebase数据库。但在17:30分我得到这个错误:AngularFIRE Property'subscribe'on type'AngularFireList <{}>'
住宅 '订阅' 上不存在型 'AngularFireList < {}>'
我AppComponent:
import { Component } from '@angular/core';
import {AngularFireDatabase, AngularFireDatabaseModule} from 'angularfire2/database';
import {AngularFireAuth, AngularFireAuthModule} from 'angularfire2/auth';
import { Observable } from 'rxjs/Observable';
import * as firebase from 'firebase/app';
import { Country } from './models/country';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
countries: any[];
constructor(db: AngularFireDatabase)
{
db.list('/Country/countries')
.subscribe(countries => { // <--ERROR IS HERE
this.countries = countries;
console.log(this.countries);
});
}
}
我型号:
export class Country {
// --ATTRIB--
id: string;
name: string;
code: string;
urlFlag: string;
}
无法找到任何关于此错误的信息。我是角度初学者。谢谢,如果可以帮助我。
答
从AngularFire 5.0开始,你会想要使用snapshotChanges()
,valueChanges<T>()
,stateChanges()
或auditTrail()
之一。 See the 5.0 migration guide。
开始使用最基本的,valueChanges()
:
export class AppComponent {
countries: Observable<Country[]>;
constructor(db: AngularFireDatabase) {
this.countries = db.list('/Country/countries').valueChanges();
}
}
答
一个简单的变化将是补充: valueChanges() 前: .subscribe()
db.list('/Country/countries').valueChanges().subscribe(countries => {
this.countries = countries;
console.log(this.countries);
});
答
尝试下一个:
export class AppComponent {
countries: any[];
constructor(db: AngularFireDatabase)
{
this.countries = db.list('/Country/countries').valuesChanges();
}
}
如果你有一个模型,然后:
export class AppComponent {
countries: Country[];
constructor(db: AngularFireDatabase)
{
this.countries = db.list<Country>('/Country/countries').valueChanges();
}
}
“更新作品!” ; d –