javascript - tutorial - firebase update




Comment mettre à jour tous les enfants dans Firebase? (2)

J'essaie de mettre à jour Firebase tous les enfants sur un niveau d'arbre. Par exemple quelque chose comme ceci:

firebase.child("auctions").child().update({a: true});

et cela me rend l'erreur, parce que l'enfant est vide. Est-il possible de mettre à jour tous les enfants des ventes aux enchères?


Vous devrez boucler tous les enfants à un moment donné. Voici un moyen simple de le faire:

firebase.child("auctions").on('value', function(snapshot) {
    snapshot.ref().update({a: true}); // or snapshot.ref if you're in SDK 3.0 or higher
});

Vous pouvez également collecter toutes les mises à jour, puis les envoyer à Firebase sous la forme d'une instruction de mise à jour potentiellement importante:

var updates = {};
firebase.child("auctions").on('value', function(snapshot) {
    updates["auctions/"+snapshot.key+"/a"] = true;
});
snapshot.ref().update(updates);  // or snapshot.ref if you're in SDK 3.0 or higher

Les deux extraits accomplissent la même chose, mais ces derniers envoient une seule commande, ce qui en fait une solution plus résiliente en cas de panne réseau.


Vous n'avez pas besoin de cette invocation .child() vide.

Qu'est-ce que firebase.child("auctions").update({a: true}); va faire est de changer /auctions/a/whatever /auctions/a/true .

Si vous voulez vraiment "mettre à jour tous les enfants sur un niveau d'arbre" alors .set pourrait mieux fonctionner car il remplacera toutes les données du point de terminaison par l'objet que vous lui donnez. Donc, si vous avez exécuté firebase.child("auctions").set({a: true}); alors tout sous /auctions sera remplacé par {a: true}

Si vous ne vouliez pas vous débarrasser de tout sous /auctions mais que vous vouliez vous débarrasser de tout dans les auctions/a vous pourriez faire firebase.child("auctions/a").set(true);

Il existe plusieurs façons d'accomplir ce dont vous avez besoin. Je ne suis pas sûr à 100% de ce dont vous avez réellement besoin.





firebase-database