如何使用AngularFire2和Firebase加入两个节点?

时间:2016-12-06 15:53:43

标签: javascript angular firebase firebase-realtime-database angularfire2

我有Firebase数据库的这种结构

enter image description here

每个图书馆都可以有多个相册。如何显示每个库的相册?

albumsPerLib:第一个元素是库键,在每个库键下面,我存储属于它的专辑键。

但我不熟悉NoSQL,无法想象如何加入来显示每个库的相册。

1 个答案:

答案 0 :(得分:1)

这样可行:

  getAlbumsThatBelongToLib(libKey:string):Observable<Album[]>{
//get the keys for the lib albums
const albumsPerLib$ = this.db.list(`albumsPerLib/${libKey}`);

//map the returned list of keys
//and get their details from the albums node
return albumsPerLib$
  .map((albumKeys) => albumKeys
      .map( (albumKey) => {
         return this.db.object(`albums/${albumKey.$key}`)
      }))
  .flatMap((res) => {
    return Observable.combineLatest(res);
  });
}