这是我的Firebase数据库的结构:
我正在尝试检索名称列表,仅是通过单击按钮通过电子邮件发送它。
我到目前为止的代码:
toemail(){
this.db.list('profiles').snapshotChanges().subscribe(
res => {
res.forEach(doc => {
this.people.push(doc.payload.val());
});
});
console.log(this.people);
}
此代码将所有数据(电子邮件,游戏,姓名)添加到人员列表。如何修改它,以仅将具有Game = 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
已添加实体