Свойство "подписка" не существует для типа "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;
});