2

AngularFire2 rc 5.0にアップグレードしました。AngularFireObjectを購読する

それは新しい型や関数と一致するように、私は私のコードを適応しますが.object(path)に加入しようとすると、私は次のエラーを取得する:

Property 'subscribe' does not exist on type 'AngularFireObject' 

以下の私のコード。

プロバイダ:

getEvent(id: string): AngularFireObject<any> { 
    let path = `/events/${id}`; 
    return this.af.object(path).valueChanges(); 
    } 

ページ:

... 
event$: AngularFireObject<any>; 
... 

// Retrieve event's info 
this.event$ = this.eventService.getEvent(this.id); 

// Retrieve event's ownership info 
let subscription = this.event$.subscribe(event => { 
    this.owner$ = this.userService.getUserPublicInfo(event.owner); 
}); 

任意のアイデア?

+0

にですがapp.moduleで何かを思わ、あなたは私がこれをしようとすると –

答えて

1

valueChanges()を使用しています。つまり、getEvent(id: string)は、FirebaseObjectObservable<any>ではなく、AngularFireObject<any>です。 チェックhere

AngularFireObject<any>は、あなたの関数の戻り値の型を変更しthis.af.object(path)

によって返されます。 FirebaseObjectObservable `コンパイラは私にFirebaseObjectObservableができなかったことのタイプを伝えます:

getEvent(id: string): FirebaseObjectObservable<any> { 
    let path = `/events/${id}`; 
    return this.af.object(path).valueChanges(); 
    } 
+0

をインポートし、'イベント$を宣言するために追加する必要が何かがありますかどうかを確認してみてください(私は型をインポートすることはできません...そして、5.0で廃止されていることを読んでいます)。では、これを処理する最善の方法は何ですか?私は以前と同じようにマップしたり、購読したりしたいだけです。あなたのお勧めは何ですか? –

+0

その場合、戻り値の型をObservableとして設定してみてください

+0

私はそれが働いているという印象を持っています。この点については、この文書は明確ではありません。その他の未解決の問題を解決し、問題が解決した場合は「解決済み」とマークします。どうも ! –