私はAngular 4とFirebase Realtime DBを使ってゲームを構築しています。私はこの例では、特定の選手、ジョーにFirebaseObjectObservableを作成したいのですが私のアプリでFirebaseListObservableクエリから単一のFirebaseObjectObservableを返す方法
FB -> player_list-> -KyagqWEM-cqUoppGe_x
id:33061
name:Joe
-KyadrWSD-aqUeedBv_w
id:22037
name:Cara
:私はこのようなFirebase DBのレイアウトを持っています。私の呉データベースサービスでは、私はこのようになります方法作成しました:
getPlayerFromId(playerId: number): FirebaseListObservable<Player[]> {
this.player = this.database.list(this.playerBasePath, {
query: {
orderByChild: 'id',
equalTo: playerId,
limitToFirst: 1
}
})
return this.player;
}
クエリを私のFirebaseデータベース内の特定のノードを検索するための最良の方法であると思われる、残念なことにクエリは、リストのみを返すように見えますたとえそのリストが長さが1つの項目であっても。私のコンポーネントでは、このようなコードで、一人のプレイヤーオブジェクトを取得するにはかなり簡単です:
getPlayer(playerId: number){
this.studentService.getPlayerFromId(playerId)
.subscribe(data => {
this.player = data[0];
})
}
リストクエリから1 FirebaseObjectObservableを返すために、よりエレガントな方法はありますか?私はマップとフィルターを試しましたが、明らかにFirebaseListObservableでサポートされていません。