Ein 'Tage'-Knoten mit mehr als einem Kind wird nicht entfernt. Wie kann ich dieses Problem beheben?Ungültige Rückgabeanweisung in JavaScript
Ich muss sicherstellen, dass mein Versprechen bis zum letzten then() auf der obersten Ebene sprudelt. Also brauche ich eine Rückgabe vor collectionRef.once
. Aber diese Return-Anweisung verhindert nun, dass die collectionRef.once
passiert. Ich stecke fest!
Hier ist mein Code
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
const defaultDatabase = admin.database();
exports.deleteOldItems = functions.database.ref('/path/to/items/{pushId}')
.onWrite(event => {
var ref = event.data.ref.parent; // reference to the items
var now = Date.now();
var cutoff = now - 2 * 60 * 60 * 1000;
var oldItemsQuery = ref.orderByChild('timestamp').endAt(cutoff);
return oldItemsQuery.once('value', function(snapshot) {
// create a map with all children that need to be removed
var updates = {};
snapshot.forEach(function(child) {
updates[child.key] = null
});
// execute all updates in one go and return the result to end the function
return ref.update(updates);
}).then(function() {;
const theRef = event.data.ref;
const collectionRef = theRef.parent.child('days');
return collectionRef; // ILEGAL RETURN STATEMENT
collectionRef.once('value').then(messagesData => {
if(messagesData.numChildren() > 1) {
let updates = {};
updates['/days'] = null;
return defaultDatabase.ref().update(updates); // 'days' doesn't get removed even if it has more than 1 child (as in the image)!
}
})
});
});
Datenstruktur: https://i.stack.imgur.com/gVn8S.jpg
Können Sie bitte aufhören, Fragen zu duplizieren, bei einem Thema bleiben, keine Notwendigkeit, mit demselben zu spammen [Frage] (https://stackoverflow.com/questions/44743530/node-with-more-than-1-child-is (nicht entfernt) –
@MihaiIorga Niemand antwortet. Ich werde die richtige Antwort akzeptieren. –