このチュートリアル Firebaseデータベースとの接続方法angular 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;
}
カントはこのエラーについて何かを見つけます。私は角の初心者です。助けてくれてありがとう。
AngularFire 5.0以降では、snapshotChanges()
、valueChanges<T>()
、stateChanges()
、またはauditTrail()
のいずれかを使用する必要があります。 5.0移行ガイドを参照 。
最も基本的な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);
});
エクスポートクラスAppComponent {constructor(db:AngularFireDatabase){db.list( '/ courses')。valueChanges()。subscribe()
}}
In Angular firebaseバージョン5.0以降。subscribeは。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 {
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();
}
}