Firebase-Daten löschen, die älter als 2 Stunden sind
Die Frage:
Um Latenz zu vermeiden und Um die Datenbankleistung zu optimieren, ist es wichtig, veraltete Daten effizient zu löschen. Mit dieser Frage wird nach einer Möglichkeit gesucht, Firebase-Daten zu entfernen, die älter als zwei Stunden sind.
Die Lösung:
Firebase erlaubt keine Abfragen mit dynamischen Parametern wie „vor zwei Stunden“. ." Stattdessen können wir eine Abfrage für einen bestimmten Zeitstempel ausführen, z. B. „nach einem bestimmten Datum und einer bestimmten Uhrzeit in der Vergangenheit“.
Um alte Daten zu löschen, beachten Sie den folgenden Codeausschnitt:
var ref = firebase.database().ref('/path/to/items/'); var now = Date.now(); var cutoff = now - 2 * 60 * 60 * 1000; var old = ref.orderByChild('timestamp').endAt(cutoff).limitToLast(1); var listener = old.on('child_added', function(snapshot) { snapshot.ref.remove(); });
So funktioniert es:
Für Cloud Functions for Firebase:
exports.deleteOldItems = functions.database.ref('/path/to/items/{pushId}') .onWrite((change, context) => { var ref = change.after.ref.parent; var now = Date.now(); var cutoff = now - 2 * 60 * 60 * 1000; var oldItemsQuery = ref.orderByChild('timestamp').endAt(cutoff); return oldItemsQuery.once('value', function(snapshot) { var updates = {}; snapshot.forEach(function(child) { updates[child.key] = null }); return ref.update(updates); }); });
Diese Funktion wird immer dann ausgeführt, wenn Daten vorhanden sind unter /path/to/items geändert, untergeordnete Knoten werden nur gelöscht, wenn sie geändert werden.
Das obige ist der detaillierte Inhalt vonWie lösche ich Firebase-Daten, die älter als zwei Stunden sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!