Heim >Web-Frontend >js-Tutorial >Wie lösche ich Firebase-Daten, die älter als zwei Stunden sind?

Wie lösche ich Firebase-Daten, die älter als zwei Stunden sind?

Susan Sarandon
Susan SarandonOriginal
2024-12-07 22:06:15806Durchsuche

How to Delete Firebase Data Older Than Two Hours?

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:

  • Verwenden Sie child_added anstelle von value.
  • Set limitToLast(1), um sicherzustellen, dass nur das letzte Element nach dem Cutoff gelöscht wird.
  • Wenn Elemente gelöscht werden, löst Firebase „child_added“ für das nächste „letzte“ Element aus, bis alle veralteten Elemente entfernt sind.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn