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(); });
Voici comment cela fonctionne :
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); }); });
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!