2017-10-13 27 views
6

Tôi đang theo dõi this tutorial về cách kết nối góc với cơ sở dữ liệu firebase. Nhưng trong phút 17:30 Tôi nhận được lỗi này:Thuộc tính AngularFIRE 'đăng ký' không tồn tại trên loại 'AngularFireList <{}>'

tài sản 'đăng ký' không tồn tại trên loại 'AngularFireList < {}>'

AppComponent tôi:

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); 
     }); 
    } 
} 

My mô hình:

export class Country { 
    // --ATTRIB-- 
    id: string; 
    name: string; 
    code: string; 
    urlFlag: string; 
} 

Không tìm thấy bất kỳ điều gì về lỗi này. Tôi là người mới bắt đầu ở góc độ. Cảm ơn nếu có thể giúp tôi.

Trả lời

10

Bắt đầu từ AngularFire 5.0 bạn sẽ muốn sử dụng một trong số snapshotChanges(), valueChanges<T>(), stateChanges() hoặc auditTrail(). See the 5.0 migration guide.

Hãy bắt đầu với cơ bản nhất, valueChanges():

export class AppComponent { 
    countries: Observable<Country[]>; 
    constructor(db: AngularFireDatabase) { 
    this.countries = db.list('/Country/countries').valueChanges(); 
    } 
} 
+0

"cập nhật hoạt động!" ; D –

4

Một sự thay đổi đơn giản hơn sẽ được thêm: valueChanges() trước: .subscribe()

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

Hãy thử tiếp theo :

export class AppComponent { 
    countries: any[]; 

    constructor(db: AngularFireDatabase) 
    { 
     this.countries = db.list('/Country/countries').valuesChanges(); 
    } 
} 

Và nếu bạn có mô hình thì:

export class AppComponent { 
    countries: Country[]; 

    constructor(db: AngularFireDatabase) 
    { 
    this.countries = db.list<Country>('/Country/countries').valueChanges(); 
    } 
} 
Các vấn đề liên quan