Cloud Storage for Firebase vous permet d'importer et de partager du contenu généré par les utilisateurs, comme des images et des vidéos, ce qui vous permet d'intégrer du contenu multimédia enrichi à vos applications. Vos données sont stockées dans un bucket Google Cloud Storage, une solution de stockage d'objets à l'échelle de l'exaoctet, offrant une haute disponibilité et une redondance mondiale. Cloud Storage for Firebase vous permet d'importer ces fichiers de manière sécurisée directement depuis des appareils mobiles et des navigateurs Web, en gérant facilement les réseaux instables.
Avant de commencer
Si vous ne l'avez pas encore fait, assurez-vous d'avoir suivi le guide de démarrage pour les applications pour les plates-formes Apple. Par exemple :
Créer un projet Firebase
Enregistrez votre application pour les plates-formes Apple dans le projet, puis associez-la à Firebase en ajoutant la bibliothèque Firebase et votre fichier de configuration Firebase (
GoogleService-Info.plist
) à votre application.
Assurez-vous que votre projet Firebase est associé au forfait Blaze (paiement à l'usage). Si vous débutez avec Firebase et Google Cloud, vérifiez si vous pouvez bénéficier d'un crédit de 300 $.
Créer un bucket Cloud Storage par défaut
Dans le volet de navigation de la console Firebase, sélectionnez Storage (Stockage).
Si votre projet n'est pas encore associé au forfait Blaze à l'utilisation, vous serez invité à le mettre à niveau.
Cliquez sur Commencer.
Sélectionnez un emplacement pour votre bucket par défaut.
Les buckets de
,US-CENTRAL1
etUS-EAST1
peuvent bénéficier du niveau "Toujours sans frais" pour Google Cloud Storage. Les buckets dans tous les autres emplacements suivent la tarification et l'utilisation Google Cloud Storage.US-WEST1
Si vous le souhaitez, vous pouvez ensuite créer plusieurs buckets, chacun avec sa propre zone.
Configurez Firebase Security Rules pour votre bucket par défaut. Pendant le développement, envisagez de configurer vos règles d'accès public.
Cliquez sur OK.
Vous pouvez désormais afficher le bucket dans l'onglet Cloud Storage Fichiers de la console Firebase. Le format de nom de bucket par défaut est PROJECT_ID.firebasestorage.app
Configurer l'accès public
Cloud Storage for Firebase fournit un langage de règles déclaratif qui vous permet de définir la structure et l'indexation de vos données, ainsi que les moments où elles peuvent être lues et écrites. Par défaut, l'accès en lecture et en écriture à Cloud Storage est limité afin que seuls les utilisateurs authentifiés puissent lire ou écrire des données. Pour commencer sans configurer Authentication, vous pouvez configurer vos règles pour l'accès public.
Cela rend Cloud Storage ouvert à tous, même aux personnes qui n'utilisent pas votre application. Veillez donc à restreindre à nouveau votre Cloud Storage lorsque vous configurez l'authentification.
Ajouter Cloud Storage à votre application
Utilisez Swift Package Manager pour installer et gérer les dépendances Firebase.
- Dans Xcode, avec votre projet d'application ouvert, accédez à File > Add Packages (Fichier > Ajouter des packages).
- Lorsque vous y êtes invité, ajoutez le dépôt du SDK des plates-formes Firebase pour Apple :
- Choisissez la bibliothèque Cloud Storage.
- Ajoutez l'indicateur
-ObjC
à la section Other Linker Flags (Autres indicateurs Linker) des paramètres de compilation de votre cible. - Lorsque vous avez terminé, Xcode commence à résoudre et à télécharger automatiquement vos dépendances en arrière-plan.
https://github.com/firebase/firebase-ios-sdk.git
Configurer Cloud Storage dans votre application
Initialisez Firebase avant de créer ou d'utiliser une référence Firebase.
Vous l'avez peut-être déjà fait si vous avez déjà configuré un autre produit Firebase, mais vous devez vous assurer d'ajouter la bibliothèque
FirebaseStorage
à votre liste d'importations.Importez le module
FirebaseCore
et le moduleFirebaseStorage
dans votreUIApplicationDelegate
. Nous vous recommandons également d'ajouterFirebaseAuth
.SwiftUI
import SwiftUI import FirebaseCore import FirebaseStorage import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseStorage import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseStorage; @import FirebaseAuth; // ...
Configurez une instance partagée
FirebaseApp
dans la méthodeapplication(_:didFinishLaunchingWithOptions:)
de votre délégué d'application:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
(SwiftUI uniquement) Créez un délégué d'application et associez-le à votre struct
App
à l'aide deUIApplicationDelegateAdaptor
ouNSApplicationDelegateAdaptor
. Vous devez également désactiver le mélange des délégués d'application. Pour en savoir plus, consultez les instructions SwiftUI.SwiftUI
@main struct YourApp: App { // Register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
Obtenez une référence au service Cloud Storage à l'aide de l'application Firebase par défaut.
Assurez-vous que le fichier de configuration Firebase (
GoogleService-Info.plist
) dans le codebase de votre application est mis à jour avec le nom de votre bucket Cloud Storage par défaut.Utilisez ce fichier de configuration téléchargé pour remplacer le fichier
GoogleService-Info.plist
existant à la racine de votre projet Xcode. Si vous y êtes invité, sélectionnez l'option permettant d'ajouter le fichier de configuration à toutes les cibles.Assurez-vous que votre application ne contient que le fichier de configuration téléchargé le plus récemment et que son nom de fichier n'est pas suivi de caractères supplémentaires, comme
(2)
.
Obtenez une référence au service Cloud Storage à l'aide de l'application Firebase par défaut:
Swift
let storage = Storage.storage()
// Alternatively, explicitly specify the bucket name URL. storage = Storage.storage(url:"gs://BUCKET_NAME")
Objective-C
FIRStorage *storage = [FIRStorage storage];
// Alternatively, explicitly specify the bucket name URL. // FIRStorage storage = [FIRStorage storageWithURL:@"gs://BUCKET_NAME"];
Vous pouvez maintenant utiliser Cloud Storage !
Étape suivante ? Découvrez comment créer une référence Cloud Storage.
Configuration avancée
Certains cas d'utilisation nécessitent une configuration supplémentaire :
- Utiliser des buckets Cloud Storage dans plusieurs régions géographiques
- Utiliser des buckets Cloud Storage dans des classes de stockage différentes
- Utiliser Cloud Storage buckets avec plusieurs utilisateurs authentifiés dans la même application
Le premier cas d'utilisation est parfait si vous avez des utilisateurs dans le monde entier et que vous souhaitez stocker leurs données à proximité d'eux. Par exemple, vous pouvez créer des buckets aux États-Unis, en Europe et en Asie pour stocker les données des utilisateurs de ces régions afin de réduire la latence.
Le deuxième cas d'utilisation est utile si vous disposez de données avec des modèles d'accès différents. Par exemple, vous pouvez configurer un bucket multirégional ou régional qui stocke des images ou d'autres contenus consultés fréquemment, et un bucket Nearline ou Coldline qui stocke des sauvegardes utilisateur ou d'autres contenus consultés rarement.
Dans les deux cas, vous devez utiliser plusieurs buckets Cloud Storage.
Le troisième cas d'utilisation est utile si vous créez une application, comme Google Drive, qui permet aux utilisateurs d'avoir plusieurs comptes connectés (par exemple, un compte personnel et un compte professionnel). Vous pouvez utiliser une instance d'application Firebase personnalisée pour authentifier chaque compte supplémentaire.
Utiliser plusieurs buckets Cloud Storage
Si vous souhaitez utiliser un bucket Cloud Storage autre que celui par défaut fourni ci-dessus ou plusieurs buckets Cloud Storage dans une même application, vous pouvez créer une instance de FIRStorage
qui fait référence à votre bucket personnalisé :
Swift
// Get a non-default Cloud Storage bucket storage = Storage.storage(url:"gs://my-custom-bucket")
Objective-C
// Get a non-default Cloud Storage bucket FIRStorage storage = [FIRStorage storageWithURL:@"gs://my-custom-bucket"];
Utiliser des buckets importés
Lorsque vous importez un bucket Cloud Storage existant dans Firebase, vous devez autoriser Firebase à accéder à ces fichiers à l'aide de l'outil gsutil
inclus dans le SDK Google Cloud:
gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://BUCKET_NAME
Vous trouverez votre numéro de projet comme décrit dans la présentation des projets Firebase.
Cela n'a aucune incidence sur les nouveaux buckets, car leur contrôle d'accès par défaut est défini pour autoriser Firebase. Il s'agit d'une mesure temporaire qui sera effectuée automatiquement à l'avenir.
Utiliser une application Firebase personnalisée
Si vous créez une application plus complexe à l'aide d'un FirebaseApp
personnalisé, vous pouvez créer une instance de Storage
initialisée avec cette application:
Swift
// Get the default bucket from a custom FirebaseApp storage = Storage.storage(app:customApp) // Get a non-default bucket from a custom FirebaseApp storage = Storage.storage(app:customApp, url:"gs://my-custom-bucket")
Objective-C
// Get the default bucket from a custom FIRApp FIRStorage storage = [FIRStorage storageForApp:customApp]; // Get a non-default bucket from a custom FIRApp FIRStorage storage = [FIRStorage storageForApp:customApp withURL:@"gs://my-custom-bucket"];
Étapes suivantes
Préparez le lancement de votre application :
Activez App Check pour vous assurer que seules vos applications peuvent accéder à vos buckets de stockage.
Configurez des alertes budgétaires pour votre projet dans la console Google Cloud.
Surveillez le tableau de bord "Utilisation et facturation" dans la console Firebase pour obtenir une vue d'ensemble de l'utilisation de votre projet sur plusieurs services Firebase. Vous pouvez également consulter le tableau de bord Utilisation de Cloud Storage pour en savoir plus sur l'utilisation.
Consultez la checklist de lancement de Firebase.