Angularfire5 - Get the key of Realtime database do

2019-08-29 03:53发布

问题:

I am loading a list and passing it to a component to then render the information. One of the items I need is the ID. How can I see that in the list. I've seen the documentation and it does not help. It only shows the key of the parent.

this.allWorkouts = this.afDb.list<IWorkout>('/workouts')
    .valueChanges()
    .take(1)
    .map((array) => array.reverse()) as Observable<IWorkout[]>;

<ion-card *ngFor="let workout of allWorkouts | async">
    <card-workout [workout]="workout"></card-workout>
</ion-card>

回答1:

In version 5.0 of AngularFire you need to use snapshotChanges() if you want to get access to the key.

valueChanges() is only for basic use cases were you only care about the JSON tree.



回答2:

To get the key you need suscribe the observable and then print of this way:

suscribe(snapshot => { snapshot.$key })

If you need print into a *ngFor you should use:

workout.$key