是否可以通过编程方式在Firebase中为自定义存储桶设置安全规则?

问题描述 投票:0回答:2

出于多种业务和技术原因,我们希望给使用我们解决方案的每家公司一个特定的类别。该存储桶由公司注册触发的Cloud函数创建。

要与Firebase一起使用,必须在Web控制台中“导入”此存储桶,以定义需要调整的默认安全策略。

由于我们将无法长期手动执行此操作,因此是否有可能在Admin SDK中以编程方式实现此存储桶导入和策略实施?

firebase google-cloud-functions google-cloud-storage firebase-admin
2个回答

0
投票

经过多次试验,林伤心地说,即使一个能够创建与管理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)
   }
© www.soinside.com 2019 - 2024. All rights reserved.