firebase数据库查询

时间:2017-08-17 06:44:25

标签: angular typescript firebase firebase-realtime-database angularfire2

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

  1. 获取所有onLine用户
  2. 抓取所有不播放用户
  3. 我读了几篇文章,我们不能在查询中添加两个ord​​erByChild 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 个答案:

答案 0 :(得分:3)

您应该只能使用.filter功能。

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

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

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