2016-06-21 14 views
4

私はfirebaseで小さなアプリケーションを作った。私はあなたのデータへの変更を観察することを可能にするFirebaseListObservableと呼ばれるanglefireによって提供されるタイプを使用しています。私が抱えている問題は、Angularfireはクエリオブジェクトをリクエストに添付したり渡したりして、データをクエリする方法も提供していることです。FirebaseListObservableがクエリ後にObservableになる

以下はFirebaseListObservableを返します。

this.resources$ = <FirebaseListObservable<IResource[]>> this.af.list(`/resources/${this.auth.id}`) as FirebaseListObservable<IResource[]>; 

//これは、通常の観測値を返します。

this.resources$ = <FirebaseListObservable<IResource[]>> this.af.list(`/resources/${this.auth.id}`, 
    { 
    query: { 
     orderByChild: `${property}` 
    } 
    } 
) as FirebaseListObservable<IResource[]>; 

しかし、これは普通の古い観測値を返します。問題は、CRUD機能が追加されたためFirebaseListObservableが必要で、単純なフィルタ/ソート方法を記述しようとしていることです。

私は彼らにこれについてOpen Issueがあることがわかりますが、私はこの問題をもっと早く後にする方法があることを期待しています。このチケットで解説されている解決策では、FirebaseListObservableを拡張し、リフトメソッドをオーバーライドしてカスタムオブザーバブルを返す方法について説明します。私はそれを行うCustomFirebaseListObservableを作成しようとしましたが、私は正しいプロパティ(observable.sourceとobservable.operatorから私のカスタムobservableの中にアクセスできないようです。私はobservableをキャストする方法を望んでいますfirebaseListObservable。任意の回避策は本当にだろう。

+0

?angularfireにそれを渡すと、あなたは今までの回避策を見つけましたこれについては、まったく同じ質問があります。 –

答えて

1

あなたはまだこの問題を抱えている場合は、多分あなたは秩序とfirebase参照を作成することができ、その後、

let refPath = `/resources/${this.auth.id}`, 
    ref = firebase.database().ref(refPath).orderByChild(property); 
this.resources$ = <FirebaseListObservable<IResource[]>>this.af.list(ref); 
関連する問題