我想在angular 4应用程序中过滤firebase数据库中的数据。我需要应用两个过滤器。
我读了几篇文章,我们不能在查询中添加两个orderByChild critearea。所以我使用了map功能,如下所示,
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;
});
}
在上面的代码中,在map函数中,我收到了所有在线用户,但我无法根据Play字段过滤数据。 为完成这项工作,我需要做出哪些改变。
答案 0 :(得分:3)
您应该只能使用.filter
功能。
.filter(item => item.isPlaying === false)
在上面的代码中,您有拼写错误,这也可能导致您当前的功能无法正常工作。请注意s
声明中items
之后的if
。
if(items.isPlaying == false){
filteredUser.push(item);
}