Как развернуть правила хранения Firebase для определенных сегментов?
Я хотел бы знать, как развертывание правил хранения работает в Firebase.
В Firebase Storage у меня есть 2 ведра 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
ведро и ничего, кажется, не отправили app-mybucket
, Я хотел бы знать, как я могу развернуть правила для всех групп.
1 ответ
В вашем файле firebase.json вы можете указать что-то вроде этого:
"storage": [{
"rules": "my-appspot.rules",
"bucket": "app.appspot.com"
},
{
"rules": "my-bucket.rules",
"bucket": "app-mybucket"
}]
В приведенном выше примере используются разные правила для каждой группы, вы также можете использовать одинаковые правила для каждой группы, если хотите.
Вы также можете использовать цели развертывания. Более подробную информацию можно найти здесь.
пример
- Применить новую цель (в данном случае "главную") с помощью интерфейса командной строки.
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