Maison > interface Web > js tutoriel > Comment puis-je automatiser la suppression des données datant de plus de deux heures dans Firebase ?

Comment puis-je automatiser la suppression des données datant de plus de deux heures dans Firebase ?

Patricia Arquette
Libérer: 2024-11-29 21:48:12
original
544 Les gens l'ont consulté

How Can I Automate the Deletion of Data Older Than Two Hours in Firebase?

Automatisation du nettoyage des données dans Firebase

Pour supprimer efficacement les données Firebase datant de plus de deux heures, envisagez l'approche suivante :

Limites de Firebase :

Firebase ne propose pas de requêtes avec dynamique des paramètres comme "il y a deux heures". Cependant, il peut exécuter des requêtes pour des valeurs spécifiques, telles que « après un horodatage particulier ».

Suppression basée sur le temps :

Implémentez un extrait de code qui s'exécute périodiquement pour supprimer les données datant de plus de deux heures à ce moment-là.

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

Mise en œuvre Détails :

  • Utilisez child_added au lieu de value et limitToLast(1) pour gérer les suppressions efficacement.
  • Au fur et à mesure que chaque enfant est supprimé, Firebase déclenchera child_added pour le nouveau "dernier " élément jusqu'à ce qu'il n'y ait plus d'éléments après le point de coupure.

Fonctions Cloud pour Firebase :

Si vous souhaitez que ce code s'exécute périodiquement en arrière-plan, vous pouvez utiliser Cloud Functions 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

Remarque :

  • Cette fonction se déclenchera chaque fois que des données sont écrites dans /path/to/items, supprimant uniquement les nœuds enfants qui respectent l'heure critères.
  • Le code est également disponible dans le dépôt de fonctions-échantillons pour votre commodité.

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