web-dev-qa-db-ja.com

AngularFIREプロパティ 'subscribe'はタイプ 'AngularFireList <{}>'に存在しません

このチュートリアル 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;
}

カントはこのエラーについて何かを見つけます。私は角の初心者です。助けてくれてありがとう。

8
Diego Venâncio

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();
  }
}
19
James Daniels

より簡単な変更は、valueChanges()の前に.subscribe()を追加することです。

db.list('/Country/countries').valueChanges().subscribe(countries => {
    this.countries = countries;
    console.log(this.countries);
});
13
alex

エクスポートクラスAppComponent {constructor(db:AngularFireDatabase){db.list( '/ courses')。valueChanges()。subscribe()

}}

In Angular firebaseバージョン5.0以降。subscribe。valuechanges()の後に利用可能です

2
Simran kaur
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)
  }
1
Mehmet Karakose

次を試してください:

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();
  }
}
0
George Ortiz