0
角度4のアプリケーションでfirebaseデータベースからデータをフィルタリングする必要があります。私は2つのフィルタを適用する必要があります。firebaseデータベースクエリ内の複数のorderByChildフィルタ
- すべてのオンラインユーザー
- は、私たちは、クエリで2 orderByChildのcriteareaを追加することはできません、いくつかの記事を読んで、すべてのユーザー
をプレイしていないフェッチフェッチします。だから私は、以下のように上記のコードで
users: FirebaseListObservable<any[]>;
public DB:
AngularFireDatabase;
constructor(private router: Router, private db: AngularFireDatabase) {
this.DB = db;
}
showPeopleList() {
this.users = <FirebaseListObservable<any>>this.DB.list('/users',
{
query: {
orderByChild: 'isOnline',
equalTo: true,
limitToLast: 20
}
}).map((items)=> {
let filteredUser: any[];
for (let item of items) {
if(items.isPlaying == false){
filteredUser.push(item);
}
}
return filteredUser;
});
}
をマップ機能を使用し、マップ機能では、私はすべてのオンラインのユーザーを取得していますが、私は、フィールドを再生するに基づいてデータをフィルタリングすることはできませんよ。 これを行うには、どのような変更が必要ですか?
ああ、フィルター機能を使用しています...ありがとう... –
質問が1つあります。私のコードでは、isPlayingフィルタは20レコードだけで動作するか、firebaseのすべてのレコードで動作し、合計20行を返します。 20レコードのみで動作する場合、20個すべてがisPlaying === trueであり、何も得られない可能性があります:( –