2017-10-19 5 views
0

J'utilise ionique 3 et base de feu 4.5.2 pour faire une application. J'ai un projet en firebase et je voudrais ajouter et supprimer des valeurs dans ma liste "shoppingItems". Je peux maintenant récupérer l'affichage de la liste et ajouter des éléments.clé de la valeur est indéfinie avec Firebase 4.5.2 et ionique 3

écran de ma base de données

enter image description here

Mon problème je ne peux pas supprimer une tâche, car la touche $ de ma valeur est définie. Je reçois ma liste comme ceci:

enter image description here

Mes valeurs sont contenues dans mon résultat variable (est un tableau de l'élément d'objet: qui contiennent 2 chaîne la valeur et la clé).

Répondre

1

Remercions Quelle version de angularfire2 utilisez-vous? J'ai essayé d'apprendre Angular et en cours d'exécution d'un tutoriel CRUD lors de l'exécution sur angularfire2 v5.0, j'ai découvert que valueChanges() ne renvoie aucune métadonnée.

Les informations suivantes sont glanées à partir de la documentation du angularfire2 situé à https://github.com/angular/angularfire2/blob/master/docs/version-5-upgrade.md

.valueChanges appelant() retourne une observable sans métadonnées. Si vous persistez à conserver la clé en tant que propriété, alors vous allez bien. Cependant, si vous comptez sur $ key, vous devez utiliser .snapshotChanges() et transformer les données avec un .map() observable.

La documentation fournit également un exemple.

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); 
    }); 
} 

Heureusement, vous avez déjà découvert la solution. Mais j'ai pensé que je laisserais tomber ceci dans le cas où quelqu'un trouverait votre message.