Извлечение данных из базы данных в массив - PullRequest
0 голосов
/ 18 мая 2019

Мне нужно отобразить всех пользователей, которые были созданы в Firebase.

Я попытался составить список наблюдаемых, но он ничего не показал

export class UsersListComponent implements OnInit {
  users: Observable<any[]> ;

  constructor(db2: AngularFireDatabase) {
    this.users = db2.list('/users').valueChanges();

          }

и вот мойHTML

<ul>
  <li *ngFor="let user of users | async">
     {{ user | json }}
  </li>
</ul>

Я ничего не вижу на экране, вот моя структура Firebase

Структура Firebase

enter image description here

1 Ответ

0 голосов
/ 18 мая 2019

Правильный способ состоит в том, чтобы извлекать пользователей через службу, создавать угловую службу

export class UserService {

  usertList: AngularFireList<any>;

  constructor(
    private db: AngularFireDatabase
  ) { }

  getUsers() {
    return this.userList= this.db.list('users');
  }
}

и в компоненте

constructor(
    private userService: UserService
  ) { }

  ngOnInit() {
    this.userService.getUsers().snapshotChanges().subscribe(
      item => {
        this.userList= [];
        item.forEach(
          element => {
            const x = element.payload.toJSON();
            x['$key'] = element.key;
            this.userList.push(x as User);
          }
        );
      }
    );
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...