ホームページ >ウェブフロントエンド >jsチュートリアル >2 時間以上経過した Firebase データを削除するには?
2 時間以上古い Firebase データを削除する
質問:
遅延とデータベースのパフォーマンスを最適化するには、古いデータを効率的に削除することが重要です。この質問は、2 時間以上前の Firebase データを削除する方法を求めています。
解決策:
Firebase では、「2 時間前」のような動的パラメータを使用したクエリは許可されていません。 。」代わりに、「過去の特定の日時の後」など、特定のタイムスタンプに対してクエリを実行できます。
古いデータを削除するには、次のコード スニペットを検討してください:
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(); });
その仕組みは次のとおりです。
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 で変更されるたびに実行され、変更されている場合にのみ子ノードが削除されます。
以上が2 時間以上経過した Firebase データを削除するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。