如何使用AngularFire将Firebase数据库值检索到List中

时间:2018-12-03 17:42:00

标签: firebase firebase-realtime-database ionic3 angularfire2 angularfire

这是我的Firebase数据库的结构:

enter image description here

我正在尝试检索名称列表,仅是通过单击按钮通过电子邮件发送它。

我到目前为止的代码:

  toemail(){
this.db.list('profiles').snapshotChanges().subscribe(
  res => {
    res.forEach(doc => {
      this.people.push(doc.payload.val());
    });
  });
  console.log(this.people);
}

此代码将所有数据(电子邮件,游戏,姓名)添加到人员列表。如何修改它,以仅将具有Game = 1的人员的姓名添加到人员列表中?

谢谢

1 个答案:

答案 0 :(得分:1)

我建议您先从为数据创建模型开始,因为这将真正有助于保持代码的清洁和可读性以及利用掉毛的优势 这是一些可能有用的修改后的代码

          toemail() {
            this.db.list('profiles').snapshotChanges().subscribe(
              res => {
                this.people = []; //Reset the array every time data changes
                this.people = res.filter(doc => {
                  let person = doc.payload.val() as Person; 
//Person is the data model. Although you can omit this part if you wish and the code will still work
                  return person.game === 1;
                });
              });
            console.log(this.people);
           }

Filter函数将一个数组作为输入,并在遍历每个实体后返回一个新数组,并且仅在满足特定条件时才将该实体添加到新数组中 在您的情况下,如果person.game ===1已添加实体