Есть ли способ программно настроить правила безопасности для пользовательского сегмента хранилища в Firebase? - PullRequest
0 голосов
/ 27 мая 2020

По ряду деловых и технических причин мы хотим предоставить конкретную корзину c каждой компании, использующей наше решение. Этот сегмент создается облачной функцией, запускаемой регистрацией компании.

Чтобы использовать с Firebase, этот сегмент необходимо «импортировать» в веб-консоль, чтобы определить политику безопасности по умолчанию, которую необходимо настроить. .

Поскольку мы не сможем сделать это вручную на большом расстоянии, есть ли возможность программно реализовать импорт сегмента и принудительное применение политик в Admin SDK?

Ответы [ 2 ]

1 голос
/ 27 мая 2020
0 голосов
/ 01 июня 2020

После нескольких тестов, мне грустно сказать, что даже если кто-то может создать новый сегмент с помощью 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)
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...