получить одну запись данных AngularFireDatabase - PullRequest
0 голосов
/ 21 сентября 2019

Ниже приведена база данных моего скриншота:

enter image description here

Я хочу получить один курс - по идентификатору, вот мой код:

Сервис:

 getSingle(uid: string) {
    return this.db
      .object(`courses/${uid}`)
      .snapshotChanges()
      .pipe(map(res => res.payload.val()));
  }

Компонент:

ngOnInit() {
    this.coursesService.getSingle('Kyric46r714Kibjqw2E').subscribe(item => {
      console.log(item);
    });

Я получаю null - в console.log(item)

Более того, если я изменю свой сервис на этот:

 getSingle(uid: string) {
    return this.db
      .object(`courses/${uid}`)
      .snapshotChanges()
      .pipe(map(res => res.payload.key)); < ------------
  }

я получаю console.log(item) мой ключ - Kyric46r714Kibjqw2E, как я должен.

почему метод val () не работает?

Заранее спасибо за помощь !!!

1 Ответ

2 голосов
/ 21 сентября 2019

Вам нужно добавить тире - рядом с вами id, чтобы получить данные внутри него:

this.coursesService.getSingle('-Kyric46r714Kibjqw2E').subscribe(item
...