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

2 時間以上古い Firebase データを効率的に削除するにはどうすればよいですか?

DDD
リリース: 2024-12-01 04:15:11
オリジナル
129 人が閲覧しました

How Can I Efficiently Delete Firebase Data Older Than Two Hours?

2 時間以上古い Firebase データの効率的な削除

Firebase でデータを管理する場合、データベースの効率を維持するために古いエントリをパージする必要があることがよくあります。 。一般的な課題の 1 つは、指定した期間 (2 時間など) より古いデータを削除することです。

クライアント側の削除に関する懸念

当初は、すべてのデータをループすることを検討していましたが、クライアント側で古いアイテムを削除します。ただし、このアプローチにはいくつかの欠点があります。

  • 項目が削除されるたびに db.on('value') イベントが呼び出され、過剰な関数呼び出しが発生します。
  • これはに依存しています。削除をトリガーするためのクライアント接続。複数のクライアントが接続されている場合、削除が一貫して行われない可能性があります。

サーバー側の解決策

これらの問題に対処するには、削除プロセスをサーバー側に移すことができます。 Firebase はクエリ内の動的な日付パラメータをサポートしていません。ただし、特定の値に対してクエリを実行することはできます。

ref.orderByChild('timestamp').endAt(cutoff).limitToLast(1);
ログイン後にコピー

ここで、cutoff は 2 時間前を表すタイムスタンプを表します。 child_added イベントを使用して、この基準を満たす最後の子を繰り返し削除することで、古いデータを効率的に削除できます。

ref.on('child_added', snapshot => snapshot.ref.remove());
ログイン後にコピー

Cloud Functions の実装

または、Cloud Functions では次のことができます。このクリーンアップ タスクを実行するために使用されます非同期:

exports.deleteOldItems = functions.database.ref('/path/to/items/{pushId}')
.onWrite((change, context) => {
    ... // Similar logic to the previous code
});
ログイン後にコピー

結論

サーバー側コードを活用することで、不要なクライアント イベントをトリガーしたり、信頼性の低いクライアントに依存したりすることなく、古い Firebase データを確実かつ効率的に削除できます。接続性。

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

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