Мне удалось выполнить этого урока для записи данных в мою базу данных Firebase.Однако, следуя этому уроку, я понял, что он использует «FirebaseListObservable», который теперь обновлен до «AngularFireList».Я изменил это, и чтобы заставить это работать, я должен был гарантировать, что я сохранил свою транзакцию как объект в противоположность массиву, который он сделал.
Мой код: transactionRef$: AngularFireList<transaction>
Его код: shoppingItemRef$: FirebaseListObservable<ShoppingItem[]>
Как я уже сказал, это исправило мою ошибку здесь, и мои данные были правильно зарегистрированы в базе данных.Однако, продолжая изучать руководства и пытаясь добиться извлечения данных, я быстро получил эту ошибку:
Ошибка: InvalidPipeArgument: '[объект объекта]' для канала 'AsyncPipe'
HTML
<ion-content padding>
<ion-list>
<ion-item *ngFor="let transaction of transactionRef$ | async">
<h2>Currency: {{transaction.transactionCurrency}}</h2>
<h3>Amount: {{transaction.transactionAmount}}</h3>
<h4>Receiver: {{transaction.transactionReceiver}}</h4>
</ion-item>
</ion-list>
</ion-content>
TS
import { Component } from '@angular/core';
import { NavController, NavParams } from 'ionic-angular';
import { AngularFireDatabase, AngularFireList } from 'angularfire2/database';
import { transaction } from '../../models/transaction/transaction.interface';
@Component({
selector: 'page-view',
templateUrl: 'view.html',
})
export class ViewPage {
transactionRef$: AngularFireList<transaction>
constructor(public navCtrl: NavController,public navParams: NavParams, private database: AngularFireDatabase) {
this.transactionRef$ = this.database.list('transaction');
}
}
Чтобы исправить это, я изменил эту строку: <ion-item *ngFor="let transaction of transactionRef$ | async">
На: <ion-item *ngFor="let transaction of transactionRef$">
Однако, это дало мнеследующая ошибка:
Ошибка: не удается найти другой поддерживающий объект '[object Object]' типа 'object'.NgFor поддерживает только привязку к итерируемым объектам, таким как массивы.
После прочтения этих двух ошибок становится ясно, что ошибка связана с несовместимыми типами объекта и массива.Однако я не знаю, как это исправить.Я прочитал несколько постов с людьми, имеющими эти две ошибки, но большинство либо работает с JSON (я не), либо использую «FirebaseListObservable» и поэтому могу исправить их, либо изменив его с объекта на массив, либо пропустив«| aysnc», ни один из которых не работает для меня.
Любая помощь будет принята с благодарностью.