Betrachten Sie den folgenden (vereinfachte) Code: (. Ein serverseitige Arbeiter die Aufgabe verarbeitet, schreibt das Ergebnis an einem anderen Ort auf der Datenbank, löscht dann das Objekt)Was könnte verhindern, dass ein "Kind entferntes" Ereignis ausgelöst wird?
var queueTask = function (taskObject) {
var deferred = $q.defer();
// Create new task reference & push new Task object to reference location
var newTaskRef = firebase.database().ref("task").push(taskObject);
newTaskRef.once('child_removed', function (snapshot) {
// SUCCESS
console.log("@DEBUG - TASK COMPLETE/CHILD REMOVED");
deferred.resolve(snapshot);
});
return deferred.promise;
};
Das Objekt Aufgabe wird gelöscht, aber das Ereignis child-removed
wird nie ausgelöst.
Was könnte ein child-removed
Ereignis von feuern verhindern?
Meine erste Annahme ist, dass die Aufgabe zu schnell ausgeführt wird. – Lindauson
Ich habe die Verarbeitungszeit als einen Faktor beseitigt: Ich fügte dem Verarbeitungscode des Task-Worker eine künstliche Verzögerung hinzu, das Ergebnis ist jedoch das gleiche: Das On-Removed-Ereignis wird nie ausgelöst. – Lindauson
Ich habe auch eine Aufgabe zu einem Nicht-Root-Speicherort ('.../queue/task /') hinzugefügt, aber das hat das Problem auch nicht gelöst. – Lindauson