パイプ内からFirebaseデータベースに問い合わせて値を返すことは可能ですか?Angular4/AngularFire2:パイプ内のファイアベースを照会していますか?
私は、次のHTML
<div *ngFor="let item of items">
<h2>
{{item.firstName}} {{item.middleName}} {{item.lastName}}
</h2>
<div *ngFor="let lifeItem of (item.$key | event: 'life')">
Born: {{lifeItem.start}}
</div>
</div>
そして、次のパイプがあります。
import { Pipe, PipeTransform } from '@angular/core';
import { AngularFireDatabase } from 'angularfire2/database';
@Pipe({
name: 'event'
})
export class EventPipe implements PipeTransform {
subscriptions: Array<any> = new Array<any>();
items: Array<any> = new Array<any>();
constructor(
protected db: AngularFireDatabase
){}
public transform(personId: any, eventType: any) {
if (!personId || !eventType) return [];
console.info("personId: " + personId);
console.info("eventType: " + eventType);
this.subscriptions.push(
this.db.list('/event', {
query: {
limitToLast: 200
}
}).subscribe(items => {
console.info(items);
this.items = items;
return this.items;
})
);
}
}
私はこれを実行すると、私はコンソールでこれを取得し...
...ページの対応するセクションには何も描画されません。
「Observable」はどこから届いていますか? 'rxjs/Observable'から 'import {Observable}'を試しましたが、 ''タイプ 'のオブザーバブル'オブザーバブル ' –
' rxjs/add/observable/of ';' –
パイプライン内のアイテムをさらにフィルタリングすることは可能ですか?私はこれを持っています: 'if(!personId ||!type)return Observable.of([]); \t \t出力= this.db.listせ( '/イベントを'、{ クエリは:{ \t \t \t \t orderByChild: '人'、 \t \t \t \t equalTo: } \t \tをPERSONID})。 \t \t return output; "出力"をさらにフィルタリングして、イベントタイプに一致する項目のみを含むことができますか? –