Получение данных в режиме реального времени с помощью Angular - PullRequest
1 голос
/ 13 апреля 2020

Я храню данные в базе данных Firebase в реальном времени, и я пытаюсь получить сохраненные данные, и кажется, что я не получаю их правильно - мне нужна помощь.

auth.service.ts:

 get_Data() {
  return firebase.database().ref('transfer/').on('value', (snapshot) => {
    this.transfer = snapshot.val();
     console.log('snapshot here',  this.transfer);
  })
 }

возвращает

snapshot here

app.component.ts:

 dataList(){
       this.list = this.authService.get_Data();
       console.log('got you', this.list)
    }

возвращение undefined ...

1 Ответ

1 голос
/ 13 апреля 2020

Попробуйте следующее:

 get_Data() {
  return new Promise((resolve, reject) => {
     firebase.database().ref('transfer/').on('value', (snapshot) => {
     this.transfer = snapshot.val();
     resolve(snapshot.val());
     console.log('snapshot here',  this.transfer);
   });
  });
 }

Затем внутри вашего компонента вы можете сделать:

 dataList(){
       this.authService.get_Data().then((value) => {
       console.log(value);
        });
    }

Проверьте здесь для получения дополнительной информации:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...