6 votes

Comment déployer les règles de Firebase Storage dans des buckets spécifiques ?

J'aimerais savoir comment fonctionne le déploiement des règles de stockage dans Firebase.

Dans Firebase Storage, j'ai 2 buckets app.appspot.com et app-mybucket . Sur ma machine locale, j'ai un storage.rules qui ressemble à ceci :

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;
    }
  }
}

Quand je firebase deploy --only storage ces règles sont envoyées à l'application par défaut app.appshpot.com et rien ne semble être envoyé à app-mybucket . J'aimerais savoir s'il existe un moyen de déployer des règles dans tous les buckets.

25voto

dvdmmc Points 250

Dans votre fichier firebase.json, vous pouvez spécifier quelque chose comme ceci :

  "storage": [{
    "rules": "my-appspot.rules",
    "bucket": "app.appspot.com"
  },
  {
    "rules": "my-bucket.rules",
    "bucket": "app-mybucket"
  }]

L'exemple ci-dessus utilise des règles différentes pour chaque seau, mais vous pouvez également utiliser les mêmes règles pour chaque seau si vous le souhaitez.

7voto

Vous pouvez également utiliser des cibles de déploiement. Plus d'informations sont disponibles aquí .

Ejemplo

  1. Appliquer une nouvelle cible (dans ce cas "main") à l'aide de l'ILC

    firebase target:apply storage main myproject.appspot.com myproject-eu myproject-ja

  2. Mise à jour 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 } ] }

  3. Utilisation

    firebase deploy --only storage:main

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X