Angular / Firebase - 从Firebase返回密钥和值

时间:2017-05-25 08:15:49

标签: javascript angular firebase angularfire

我正在开发一个Angular项目,并且遵循一些教程设法从firebase数据库中获取一些数据。

以下是获取值

的代码
<ul>
<li class="text" *ngFor="let item of items | async">
  {{item.$value}}
</li>
</ul>

我的问题是......我正在获取值,但我也希望获得名称(或者键,如果这是名称)。

例如,数据如下所示:

items
 name: car,
 value: ford

此代码:

<ul>
  <li class="text" *ngFor="let item of items | async">
    {{item.$value}}
  </li>
</ul>

JS代码:

export class AppComponent {
  items: FirebaseListObservable<any[]>;
  snippets: FirebaseListObservable<any[]>;
  constructor(db: AngularFireDatabase) {
    this.items = db.list('/items');
  }
}

只会返回值。

我如何同时获得

1 个答案:

答案 0 :(得分:2)

如果您使用的是angularfire2库,只需传递preserveSnapshot参数

即可
import { Component} from '@angular/core';
import { AngularFireDatabase} from 'angularfire2/database';

@Component({
  selector: 'app-root',
  template: `
    <h1>{{key | async}}</h1>
    <h1>{{value | async}}</h1>
  `
})
export class AppComponent {
  key: any;
  value: any;
    constructor(db: AngularFireDatabase) {
  this.items = db.list('/items', { preserveSnapshot: true });
    this.items
      .subscribe(snapshots => {
        snapshots.forEach(snapshot => {
          this.key = snapshot.key;
          this.value = snapshot.val()
        });
      })}

}

有关详细信息,请访问官方文档here