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

Multiple orderByChild filter in firebase database query

我想在 angular 4 应用程序中过滤来自 firebase 数据库的数据。我需要应用两个过滤器。

  1. 获取所有在线用户
  2. 获取所有不玩的用户

我看过几篇文章,我们不能在查询中添加两个 orderByChild critarea。所以我使用了如下的地图函数,

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;
});



}

在上面的代码中,在地图功能中,我获取了所有在线用户,但我无法根据比赛场地过滤数据。 我需要做哪些更改才能完成此操作。

您应该可以只使用 .filter 函数来完成此操作。

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

在您上面的代码中,您有一个拼写错误,这也可能导致您当前的功能无法正常工作。请注意 if 语句中 items 之后的 s

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