firebase-cliはホスティングだけではなくセキュリティルールもファイルで管理してデプロイする機能があります。
この機能のおかげでセキュリティルールをバージョン管理することができます。
firebase initでプロジェクトを作る時に何故かdatabaseのセキュリティルールしか聞かれないし database.rules.json
しか作られません
ストレージのルールはデプロイできないのかなと思ったのですがコードを読むとストレージのセキュリティルールもデプロイできそうだったので 試したらできました。
まず適当な名前でストレージのセキュリティルールを書いたファイルを作ります。
今回はstorage.rules
という名前で作成しました。
storage.rules
service firebase.storage {
match /b/firebase-demo.appspot.com/o {
match /{allPaths=**} {
allow read, write: if false;
}
}
}
バケットネームは適宜読み替えてください
そして以下のfirebase.json
を書き換えます。
firebase.json
{
"database": {
"rules": "database.rules.json"
},
"hosting": {
"public": "app",
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}
}
これにstorage
を追加します。
firebase.json
{
"database": {
"rules": "database.rules.json"
},
"storage": {
"rules": "storage.rules"
},
"hosting": {
"public": "app",
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}
}
後は firebase deploy
でデプロイが可能です。
まとめ
そのうちドキュメントに追加されるかもしれませんが(もしかしたらどっかにあるのかもしれないけど) とりあえずこんな感じで