Im folgenden Code, nach der Verarbeitung der Daten im Snapshot zurückgegeben, ich suche den betreffenden Datensatz zu entfernen. Wenn ich remove auf meine Referenz mit dem Schlüssel des über die Child-Methode angehängten Datensatzes rufe, werden alle Elternknoten bis zum Stamm der FB-App entfernt. Ich vermute, dass es sich um einen Fehler in meinem Code handelt. Würde jede mögliche Unterstützung schätzen, die zur Verfügung gestellt werden kann.Firebase Aufruf .remove() auf Ref entfernt alle Eltern
var Firebase = require('firebase');
var config = require('./config.json');
var fbRef = new Firebase(config.firebaseEndpoint + "/messages");
var messenger = require('./messenger.js');
fbRef.on('value', function (snap) {
//If Data is returned convert payload to array.
//pass each mesaage into messenger and upon completion delete the
// firebase record
if (snap.exists()) {
var payload = snap.val();
var keys = Object.keys(payload);
keys.forEach(function (key) {
var msg = payload[key];
messenger(msg, function (msgErr, msgData) {
if (!msgErr) {
fbRef.child(key).remove();
}
else {
console.log(msgErr);
}
});
});
}
});
Frank Dank. Sie haben die Lücke in meinem Wissen entdeckt, weil ich nicht bemerkt habe, dass der Pfad zusammen mit dem letzten Kind entfernt wird. Danke auch für das forEach auf dem Snap. Ich habe das in der API verpasst und es wird mir einige Zeit ersparen. –