ホームページ > ウェブフロントエンド > jsチュートリアル > Firebase で 2 時間以上古いデータの削除を自動化するにはどうすればよいですか?

Firebase で 2 時間以上古いデータの削除を自動化するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-29 21:48:12
オリジナル
530 人が閲覧しました

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

Firebase でのデータ クリーンアップの自動化

2 時間以上古い Firebase データを効率的に削除するには、次のアプローチを検討してください。

ファイアベース制限事項:

Firebase は、「2 時間前」のような動的パラメータを使用したクエリを提供しません。ただし、「特定のタイムスタンプの後」など、特定の値に対してクエリを実行できます。

時間ベースの削除:

定期的に実行するコード スニペットを実装します。 2 時間以上経過したデータは削除しますtime.

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();
});
ログイン後にコピー

実装の詳細:

  • 削除を効率的に処理するには、value と limitToLast(1) の代わりに child_added を使用します。
  • 各子が削除されると、Firebase はアイテムがなくなるまで、新しい「最後の」アイテムに対して child_added をトリガーします。

Cloud Functions for Firebase:

このコードをバックグラウンドで定期的に実行したい場合は、Cloud Functions for Firebase を使用できます。 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);
  });
});
ログイン後にコピー

注:

  • この関数は、データが /path/to/items に書き込まれるたびにトリガーされ、条件を満たす子ノードのみを削除します。
  • コードは、関数サンプル リポジトリからも入手できます。便利です。

以上がFirebase で 2 時間以上古いデータの削除を自動化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート