目次
ruleでやろう
もちろんアップロード側の事前バリデーションも必要ですが、リスクを考えるとruleでも弾いておきましょう
https://firebase.google.com/docs/storage/security#data_validation
↓公式のサンプルコードがそのまま使えまス
service firebase.storage {
match /b/{bucket}/o {
match /images/{imageId} {
// Only allow uploads of any image file that's less than 5MB
allow write: if request.resource.size < 5 * 1024 * 1024 // サイズ制限
&& request.resource.contentType.matches('image/.*'); // contentType制限!
}
}
}
アップロード側のエラーハンドリング
https://firebase.google.com/docs/storage/web/upload-files?hl=ja#error_handling
ruleで弾かれた場合storage/unauthorizedになるはずです
https://firebase.google.com/docs/storage/web/handle-errors#handle_error_messages