良い質問:
あなたはアップロードのための任意の制約を強制するためにFirebase Storage Security Rulesを使用することができます。ファイルに名前やメタデータに固有の識別情報が含まれている場合は、その情報をユーザーに関連付けて、時間ベースのアクセス(特に)を適用することができます。簡単な例:
match /files/{userId}/{fileName} {
// Only allow the authorized user to write to their files
allow write: if request.auth.uid == userId;
// Allow reads if the resource was created less than an hour ago
allow read: if resource.timeCreated < request.time + duration.value(60, "m");
}
あなたはガベージコレクションのシステムのために求めている:)短い答えはあなたが任意のファイルを実行した場合、それが最善だということである側面に沿って削除すべてのデータベース・オブジェクトは、クライアント上で削除されますが、我々はすべて知っているようにクライアントは信頼できません。 private backupからデータベースデータを読み込み、参照されなくなったブロブを確認して削除するバッチジョブ(毎日)を設定することもできます。 Google Cloud Functionsを待って、ファイルのアップロード時にデータベースに書き込むなどの操作を実行して、この情報を同期することもできます。最後に、Object Lifecycle Managementメソッドを使用して、一定期間後にバケット内のオブジェクト(削除、アーカイブなど)をクリーンアップすることができます。
私はバッチジョブをガベージコレクションに理解していましたが、最初の答えはファイルアップロードの悪用を防ぐための解決策ではないと思います。また、ストレージルールがデータベースを参照できない場合は不可能であることに気付きました。 –
何か悪用する方法(あまりにも多くのデータを保存する、あまりにも頻繁にアップロードしようとするなど)があり、それらのベクターにはそれぞれ別の解決策が必要なため、「ファイルアップロードの悪用」を明確にしてください。そのため、(サーバー側に強制される)セキュリティルールが存在し、多くのケースをサポートするのに十分な柔軟性を備えているのはこのためです。 –
それは私のせいです。あなたが言ったように、あまりにも多くのデータを保存すること、あまりにも頻繁にアップロードすることは、ファイルアップロードを乱用することの場合です。私はセキュリティルールのドキュメントでそれらを防ぐことは想像できません。 –