Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengautomasikan Pemadaman Data Lebih Lama Daripada Dua Jam dalam Firebase?

Bagaimanakah Saya Boleh Mengautomasikan Pemadaman Data Lebih Lama Daripada Dua Jam dalam Firebase?

Patricia Arquette
Patricia Arquetteasal
2024-11-29 21:48:12589semak imbas

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

Mengautomasikan Pembersihan Data dalam Firebase

Untuk memadamkan data Firebase yang lebih lama daripada dua jam dengan cekap, pertimbangkan pendekatan berikut:

Batasan Firebase:

Firebase tidak menawarkan pertanyaan dengan parameter dinamik seperti "dua jam yang lalu." Walau bagaimanapun, ia boleh melaksanakan pertanyaan untuk nilai tertentu, seperti "selepas cap masa tertentu."

Pemadaman Berdasarkan Masa:

Laksanakan coretan kod yang dilaksanakan secara berkala untuk padamkan data yang lebih lama daripada dua jam pada masa itu masa.

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();
});

Butiran Pelaksanaan:

  • Gunakan child_added dan bukannya nilai dan hadToLast(1) untuk mengendalikan pemadaman dengan cekap.
  • Apabila setiap kanak-kanak dipadamkan, Firebase akan mencetuskan child_added untuk item "terakhir" baharu sehingga tiada lagi item selepas titik potong.

Fungsi Cloud untuk Firebase:

Jika anda mahu kod ini dijalankan secara berkala di latar belakang, anda boleh menggunakan Cloud Functions untuk 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);
  });
});

Nota:

  • Fungsi ini akan mencetuskan apabila data ditulis ke /path/to/items, hanya memadamkan nod anak yang bertemu kriteria masa.
  • Kod ini juga tersedia dalam repo functions-samples untuk anda kemudahan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengautomasikan Pemadaman Data Lebih Lama Daripada Dua Jam dalam Firebase?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn