2016-07-24 15 views
0

残念ながら、Firebaseにはエージングメカニズム(古いエントリを自動的に削除する)はありません。だから、私はそれを実装しようとしています。しかし、私は2つの意思決定の間で立ち往生しています:Firebaseリアルタイムデータベースでエージングを実施する

  1. クライアントが古いエントリをフェッチした場合、彼は自動的に削除されます:私はそれは私のコンテキストのための最も簡単であると思います が、それは私には非常に 安全な見ていません。
  2. データベース全体をチェックして古いエントリを削除するサーバー上に小さなスクリプト/プログラムを実装します。

別のサーバーサイドアプリケーションの展開は含まれていないため、最初の解決策が気に入っていますが、リスクがあるかどうかわかりません。

あなたは最高だと思いますか? すべてのアイテムを削除する可能性を避けるために、最初のソリューションを保護するにはどうすればよいですか? 2番目の解決策では、私は自分のコンピュータからスクリプトを実行しないで、別のサーバにスクリプトを配布することはしたくないので、Firebaseに展開することは可能ですか?

+0

この記事の回答は、あなたにいくつかのアイデアを与えるかもしれません:http://stackoverflow.com/questions/15990681/firebase-chat-removing-old-messages –

答えて

3

クライアントから古いアイテムを削除することについては、以前から説明しました。参照:

だけ時代遅れの項目を除去することができるように、あなたがFirebase Database security rulesを使用することができ、この動作を確保するために。以下のような何か:今Cloud Functions for Firebaseで行うことができますFirebaseのサーバー上で独自のコードを実行

{ 
    "rules": { 
    "messages": { 
     "$message": { 
     // only messages older than an hours can be remove 
     ".write": "newData.exists() || data.child('timestamp').val() < (now - 3600000)", 
     } 
    } 
    } 
} 

sample that shows how to delete older data with Cloud Functionsもあります。

関連する問題