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
Lepaskan: 2024-11-29 21:48:12
asal
544 orang telah melayarinya

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();
});
Salin selepas log masuk

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);
  });
});
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan