出于多种业务和技术原因,我们希望给使用我们解决方案的每家公司一个特定的类别。该存储桶由公司注册触发的Cloud函数创建。
要与Firebase一起使用,必须在Web控制台中“导入”此存储桶,以定义需要调整的默认安全策略。
由于我们将无法长期手动执行此操作,因此是否有可能在Admin SDK中以编程方式实现此存储桶导入和策略实施?
经过多次试验,林伤心地说,即使一个能够创建与管理SDK的水桶,有没有办法使用它在客户端无需通过火力地堡控制台手动导入它。
安全规则不能在使用以下代码创建后立即添加。管理员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)
}