После нескольких тестов, мне грустно сказать, что даже если кто-то может создать новый сегмент с помощью Admin SDK, его невозможно использовать на стороне клиента, не импортировав его вручную через консоль Firebase.
Правила безопасности нельзя добавить сразу после создания с помощью следующего кода. Сегмент не может быть найден с помощью Admin SDK (Error: Requested entity was not found.
)
[...]
const bucketName = getCompanyBucketName(key)
const storage = new Storage()
const bucket = storage.bucket(bucketName)
const result = await bucket.create({ location: 'EU' })
if (result[0]) {
const ruleset = `
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if request.auth != null;
}
}
}
`
await admin
.securityRules()
.releaseStorageRulesetFromSource(ruleset, bucketName)
}