使用Angular 2中的Firebase从多个列表中检索值

时间:2016-09-05 18:01:03

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

我有一个简单的应用程序列出了一组位置,登录用户可以将给定位置标记为“收藏夹”。

我在firebase中的数据结构包含一个简单的位置列表:

地点=> location id:[] => [{name:“MyName”},{name:“MyName 2}]

喜欢=> userId:[] => location id:[] => {likes:true}

我想使用一些简单的逻辑在我的模板中迭代:

  <md-card *ngFor="let location of locations | async">
    <md-card-title> {{location.name}}</md-card-title>
    <md-card-content>{{location.liked}}</md-card-content>
  </mc-card>

使用我的组件中的以下逻辑

  locations: Observable<any[]>;

  constructor(
    private cardService: CardService,
    private router: Router,
    public af: AngularFire)
  {
    this.locations = af.database.list('/trips')
      .map((locations) => {
        return locations.map((location) => {
          location.liked =  af.database.object(`/likes/${this.uid}/${location.$key}`);
          return location;
        })
      }); 

但是,在我看来,location.liked属性仍为空。我检查了/likes/${this.uid}/${location.$key}网址实际上包含了所需的数据。

关于我应该如何处理的任何想法?

由于

1 个答案:

答案 0 :(得分:0)

由于$ export "ANDROID_HOME=/usr/local/opt/android-sdk" >~/.bash_profile 是firebase .image{ background-image: url(yourimage.jpg); background-position: center; } ,它返回location.like个对象。要在视图上显示对象值,您应该使用database.object管道

FirebaseObjectObservable

您可以在AngularFire Docs

中找到相同的内容