【问题标题】:Ionic 2 Angularfire2 - add list of objects from database to FirebaseListObservableIonic 2 Angularfire2 - 将对象列表从数据库添加到 FirebaseListObservable
【发布时间】:2017-11-08 08:37:09
【问题描述】:

我正在尝试在我的 Firebase 数据库中显示对象列表,但我很难将对象添加到 FirebaseListObservable。

这是我的代码:

    products: FirebaseListObservable<any[]>;

    this.db.list('products/' + this.user.uid, { preserveSnapshot: true})
                .subscribe(snapshots=>{
                  var jsonObject = [];
                  snapshots.forEach(snapshot => {
                    jsonObject.push(snapshot.val());
                  });
                  this.products = jsonObject;
    });

我得到的错误是我无法将任何 [] 分配给 FirebaseListObservable。

这是我的 HTML:

<ion-list>
    <ion-item class="text" *ngFor="let product of products | async">
      {{product}}
    </ion-item>
 </ion-list>

我的数据库如下所示:

【问题讨论】:

  • this.db.list 这会返回 Observables?

标签: firebase firebase-realtime-database ionic2 angularfire2


【解决方案1】:

你的 productsFirebaseListObservable,但是,你的 jsonObject 是一个数组,所以你不能让 this.products = jsonObject

也许你应该这样做:

products: Observable<any[]>;
this.products = this.db.list('products/' + this.user.uid, { preserveSnapshot: true})
            .map(snapshots=>{
             return snapshots.map(snapshot => {
                return snapshot.val();
              });
});

【讨论】:

  • 我尝试实施您的解决方案,但在我的 html 页面中看不到任何产品
  • 在你的.ts文件中,首先使用下面的代码打印数组,检查数组是否存在:this.products.subscribe((items)=&gt;console.log(items))你可以在ngOnInit()方法中添加这段代码
  • 我的错,我的 HTML 中有输入错误。现在可以了:)谢谢你的回答!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-08
  • 1970-01-01
  • 2018-03-20
  • 2018-06-16
  • 2019-05-26
  • 1970-01-01
相关资源
最近更新 更多