Maison > interface Web > js tutoriel > Comment supprimer les données Firebase datant de plus de deux heures ?

Comment supprimer les données Firebase datant de plus de deux heures ?

Susan Sarandon
Libérer: 2024-12-07 22:06:15
original
808 Les gens l'ont consulté

How to Delete Firebase Data Older Than Two Hours?

Supprimer les données Firebase datant de plus de 2 heures

La question :

Pour éviter la latence et optimiser les performances de la base de données, il est important de supprimer efficacement les données obsolètes. Cette question cherche un moyen de supprimer les données Firebase datant de plus de deux heures.

La solution :

Firebase n'autorise pas les requêtes avec des paramètres dynamiques tels que "il y a deux heures ". Au lieu de cela, nous pouvons exécuter une requête pour un horodatage spécifique, par exemple « après une date et une heure passées spécifiques ».

Pour supprimer les anciennes données, considérez l'extrait de code suivant :

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();
});
Copier après la connexion

Voici comment cela fonctionne :

  • Utilisez child_added au lieu de value.
  • Définissez limitToLast(1) pour garantir que seul le dernier élément après la date limite est supprimé.
  • Lorsque les éléments sont supprimés, Firebase déclenche child_added pour le "dernier" élément suivant jusqu'à ce que tous les éléments obsolètes soient supprimés.

Pour les fonctions Cloud pour 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);
  });
});
Copier après la connexion

Cette fonction s'exécute chaque fois que des données sont modifié sous /path/to/items, supprimant les nœuds enfants uniquement lorsqu'ils sont en cours de modification.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal