Claire Gizard
Claire Gizard

Reputation: 1

key of the value is undefined with Firebase 4.5.2 and ionic 3

I'am using ionic 3 and firebase 4.5.2 to make an application. I have a project in firebase and I would like to add and delete some values in my list "shoppingItems". I can now retrieve the list view and add items.

Screen of my database

enter image description here

My problem I can't remove a task because the $key of my value is undefined. I get my list like this :

enter image description here

My values are contained in my variable result ( is an array of the object item: which contain 2 string the value and the key).

Thank's

Upvotes: 0

Views: 579

Answers (1)

gburgalum01
gburgalum01

Reputation: 301

What version of angularfire2 are you using? I've been attempting to learn Angular and in running through a CRUD tutorial while running on angularfire2 v5.0, I discovered that valueChanges() does not return any metadata.

The following information is gleaned from the angularfire2 documentation located at https://github.com/angular/angularfire2/blob/master/docs/version-5-upgrade.md

Calling .valueChanges() returns an Observable without any metadata. If you are already persisting the key as a property then you are fine. However, if you are relying on $key, then you need to use .snapshotChanges() and transform the data with an observable .map().

The documentation does provide an example as well.

constructor(afDb: AngularFireDatabase) {
  afDb.list('items').snapshotChanges().map(actions => {
    return actions.map(action => ({ key: action.key,...action.payload.val() }));
  }).subscribe(items => {
    return items.map(item => item.key);
  });
}

Hopefully, you've discovered the solution by now. But I thought I'd drop this here in the event someone else finds your post.

Upvotes: 1

Related Questions