首页 文章

firebase数据库查询中的多个orderByChild过滤器

提问于
浏览
0

我想在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 回答

  • 3

    您应该只能使用 .filter 函数 .

    .filter(item => item.isPlaying === false)
    

    在上面的代码中,您有拼写错误,这也可能导致您当前的功能不起作用 . 请注意 if 语句中 items 之后的 s .

    if(items.isPlaying == false){
            filteredUser.push(item);
     }
    

相关问题