我想知道存储规则在Firebase中的部署方式。
在Firebase Storage中,我有2个存储桶bundle install rails
和app.appspot.com
。在我的本地计算机上,我有一个app-mybucket
文件,看起来像这样:
storage.rules
当我service firebase.storage {
match /b/app.appspot.com/o {
match /{allPaths=**} {
allow read, write: if request.auth != null;
}
}
match /b/app-mybucket/o {
match /{userId}/{allPaths=**} {
allow read, write: if request.auth.uid == userId;
}
}
}
时,这些规则将发送到默认的firebase deploy --only storage
存储桶,而似乎没有任何内容发送到app.appshpot.com
。我想知道一种可以将规则部署到所有存储桶的方法。
答案 0 :(得分:1)
在firebase.json文件中,您可以指定以下内容:
"storage": [{
"rules": "my-appspot.rules",
"bucket": "app.appspot.com"
},
{
"rules": "my-bucket.rules",
"bucket": "app-mybucket"
}]
上面的示例对每个存储桶使用不同的规则,如果您愿意,也可以对每个存储桶使用相同的规则。
答案 1 :(得分:1)
您还可以使用部署目标。可以找到更多信息here。
示例
firebase target:apply storage main myproject.appspot.com myproject-eu myproject-ja
firebase.json
{
"storage": [ {
"target": "main", // "main" is the applied target name for the group of Storage buckets
"rules": "storage.main.rules" // the file that contains the shared security rules
}
]
}
firebase deploy --only storage:main