Свойство "подписка" не существует для типа "AngularFireList<{}>"

Я пытаюсь запустить приложение чата, используя ionic, и получаю это сообщение.

[19:55:51]  typescript: src/pages/chat/chat.ts, line: 26 
        Property 'subscribe' does not exist on type 'AngularFireList<{}>'. 

  L25:  this.username = this.navParams.get('username');
  L26:  this._chatSubscription = this.db.list('/chat').subscribe( data => {
  L27:    this.messages = data;

[19:55:51]  typescript: src/pages/chat/chat.ts, line: 37 
        Property 'catch' does not exist on type 'PromiseLike<void>'. 

  L36:    // message is sent
  L37:  }).catch( () => {
  L38:    // some error. maybe firebase is unreachable

Кто-нибудь может мне помочь?

1 ответ

Вам необходимо указать valueChanges() или snapshotChanges() перед подпиской.

valueChanges() Возвращает Observable данных в виде синхронизированного массива объектов JSON. Все метаданные снимка удаляются, и только метод предоставляет только данные.

snapshotChanges() Возвращает Observable данных в виде синхронизированного массива AngularFireAction[].

Подробнее о получении данных вы можете прочитать здесь

Итак, ваш код должен выглядеть так:

this.db.list('chat').valueChanges().subscribe(data => {
  this.messages = data;
});
Другие вопросы по тегам