我想在angular 4应用程序中过滤firebase数据库中的数据 . 我需要应用两个过滤器 .
-
获取所有onLine用户
-
获取所有不播放用户
我看了几篇文章,我们不能在查询中添加两个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字段过滤数据 . 我需要做些什么改变来完成这项工作 .
1 回答
您应该只能使用
.filter
函数 .在上面的代码中,您有拼写错误,这也可能导致您当前的功能不起作用 . 请注意
if
语句中items
之后的s
.