Firebase:获取列表数据

时间:2017-05-08 19:20:40

标签: typescript firebase firebase-realtime-database ionic2 angularfire2

我在Firebase中实现了一个标记系统,使用以下结构:

enter image description here

现在,我想创建一个标签为id tag_id_1的所有照片列表。首先,我需要检索/ tags / tag_id_1来收集ID,然后我需要从Firebase检索相应的照片数据。

我正在使用Angularfire2库和Ionic 2。

我到目前为止编写的代码是这样的:

this.posts = af.database.list('/tags/tag_id_1')
      .map((items) => {
          console.log(items);
          return items.filter(item => item.$value).map((item) => {
              let id = item.$key;
              return af.database.object(`/photos/${id}`);
          });
      });
this.posts.subscribe();

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

但它似乎没有做到这一点。此外,每次将id添加到集合时,这将生成新的照片对象数组。因此,我尝试以不同方式实施它:

this.posts = Observable.create(observer => {
  var ref = _cloud.ref('/tags/tag_id_1');

  ref.on('child_added', (snapshot) => {
    console.log(snapshot.key);
    observer.next(_cloud.object(`/photos/${snapshot.key}`));
  });
});
this.posts.subscribe();

这只会触发更新后的照片。但我不能让它渲染。

有没有人遇到过类似的问题?我看了一下Nested Observables in Angular2 using AngularFire2 not rendering in view(我的第一个解决方案的灵感来自那个帖子),但我无法让它正常工作。

0 个答案:

没有答案