Как получить значения базы данных firebase в List с помощью AngularFire - PullRequest
0 голосов
/ 03 декабря 2018

Вот структура моей базы данных 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 голосов
/ 03 декабря 2018

Я предлагаю вам использовать start, создавая модель для ваших данных, так как это действительно поможет сохранить ваш код чистым и читаемым, а также воспользоваться преимуществами литинга. Вот некоторые модифицированные коды, которые могут помочь

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

Функция фильтра принимает массив в качестве входных данных и возвращает новый массив после циклического прохождения каждого объекта, и добавляет объект в новый массив только в том случае, если он удовлетворяет определенному условию. В вашем случае, если person.game ===1 объект добавлен

...