AngularFIRE 属性 'subscribe' 在类型 'AngularFireList<{}>' 上不存在
AngularFIRE Property 'subscribe' does not exist on type 'AngularFireList<{}>'
我正在关注 this tutorial 如何连接 angular 与 firebase 数据库。但是 17:30 分钟后我收到了这个错误:
属性 'subscribe' 在类型 '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;
}
找不到关于此错误的任何信息。我是 angular 的初学者。如果能帮到我谢谢。
从 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();
}
}
更简单的更改是在 .subscribe()
之前添加 valueChanges()
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();
}
}
import { AngularFireDatabase, AngularFireList } from 'angularfire2/database';
import { Observable } from 'rxjs';
导入代码,
countries: Observable<any[]>;
allCountries: any;
constructor(db: AngularFireDatabase ) {
this.countries = db.list('/yourpath').valueChanges();
this.countries.subscribe(countries => {
this.allCountries = countries;
console.log(this.allCountries);
})
console.log(this.countries)
}
export class AppComponent {
constructor(db : AngularFireDatabase){
db.list('/courses').valueChanges().subscribe()
}
}
在 Angular firebase 5.0 及更高版本中 .subscribe 在 .valuechanges()
之后可用
我正在关注 this tutorial 如何连接 angular 与 firebase 数据库。但是 17:30 分钟后我收到了这个错误:
属性 'subscribe' 在类型 '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;
}
找不到关于此错误的任何信息。我是 angular 的初学者。如果能帮到我谢谢。
从 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();
}
}
更简单的更改是在 .subscribe()
valueChanges()
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();
}
}
import { AngularFireDatabase, AngularFireList } from 'angularfire2/database';
import { Observable } from 'rxjs';
导入代码,
countries: Observable<any[]>;
allCountries: any;
constructor(db: AngularFireDatabase ) {
this.countries = db.list('/yourpath').valueChanges();
this.countries.subscribe(countries => {
this.allCountries = countries;
console.log(this.allCountries);
})
console.log(this.countries)
}
export class AppComponent {
constructor(db : AngularFireDatabase){
db.list('/courses').valueChanges().subscribe()
}
}
在 Angular firebase 5.0 及更高版本中 .subscribe 在 .valuechanges()
之后可用