Démarrez avec Cloud Storage sur les plateformes Apple

Cloud Storage pour Firebase vous permet de télécharger et de partager du contenu généré par l'utilisateur, tel que des images et des vidéos, ce qui vous permet de créer du contenu multimédia enrichi dans 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 avec une haute disponibilité et une redondance globale. Cloud Storage pour Firebase vous permet de télécharger ces fichiers en toute sécurité directement à partir d'appareils mobiles et de navigateurs Web, en gérant facilement les réseaux inégaux.

Conditions préalables

  1. Installez le SDK Firebase .
  2. Ajoutez votre application à votre projet Firebase dans la console Firebase .

Créer un bucket Cloud Storage par défaut

  1. Dans le volet de navigation de la console Firebase , sélectionnez Stockage , puis cliquez sur Démarrer .

  2. Consultez les messages concernant la sécurisation de vos données Cloud Storage à l'aide de règles de sécurité. Lors du développement, envisagez de définir vos règles d'accès public .

  3. Sélectionnez un emplacement pour votre bucket Cloud Storage par défaut.

    • Ce paramètre d'emplacement est l'emplacement des ressources Google Cloud Platform (GCP) par défaut de votre projet . Notez que cet emplacement sera utilisé pour les services GCP de votre projet qui nécessitent un paramètre d'emplacement, en particulier votre base de données Cloud Firestore et votre application App Engine (obligatoire si vous utilisez Cloud Scheduler).

    • Si vous ne parvenez pas à sélectionner un emplacement, cela signifie que votre projet possède déjà un emplacement de ressource GCP par défaut. Il a été défini lors de la création du projet ou lors de la configuration d'un autre service nécessitant un paramètre de localisation.

    Si vous êtes sur le plan Blaze, vous pouvez créer plusieurs buckets , chacun avec son propre emplacement .

  4. Cliquez sur Terminé .

Configurer l'accès public

Cloud Storage pour Firebase fournit un langage de règles déclaratives qui vous permet de définir comment vos données doivent être structurées, comment elles doivent être indexées et quand vos données 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 l'authentification , vous pouvez configurer vos règles d'accès public .

Cela rend Cloud Storage ouvert à tous, même aux personnes qui n'utilisent pas votre application, alors assurez-vous de 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.

  1. Dans Xcode, avec votre projet d'application ouvert, accédez à File > Add Packages .
  2. Lorsque vous y êtes invité, ajoutez le dépôt du SDK des plates-formes Apple Firebase :
  3.   https://github.com/firebase/firebase-ios-sdk
  4. Choisissez la bibliothèque Cloud Storage.
  5. Une fois terminé, Xcode commencera automatiquement à résoudre et à télécharger vos dépendances en arrière-plan.

Configurer le stockage en nuage

Vous devez initialiser Firebase avant de créer ou d'utiliser une référence Firebase. Si vous l'avez déjà fait pour une autre fonctionnalité Firebase, vous pouvez ignorer cette étape.

  1. Importez le module FirebaseCore dans votre UIApplicationDelegate , ainsi que tout autre module Firebase utilisé par votre délégué d'application. Par exemple, pour utiliser Cloud Firestore et Authentification :

    SwiftUI

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Rapide

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objectif c

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. Configurez une instance partagée FirebaseApp dans la méthode application(_:didFinishLaunchingWithOptions:) de votre délégué d'application :

    SwiftUI

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Rapide

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Objectif c

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. Si vous utilisez SwiftUI, vous devez créer un délégué d'application et l'attacher à votre structure App via UIApplicationDelegateAdaptor ou NSApplicationDelegateAdaptor . Vous devez également désactiver le swizzling des délégués d'application. Pour plus d'informations, 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()
          }
        }
      }
    }
          
  4. Obtenez une référence au service Cloud Storage à l'aide de l'application Firebase par défaut :

    Rapide

    let storage = Storage.storage()
    

    Objectif c

    FIRStorage *storage = [FIRStorage storage];
    

Vous êtes prêt à commencer à utiliser Cloud Storage !

Voyons d'abord comment créer une référence Cloud Storage .

Configuration avancée

Quelques cas d'utilisation nécessitent une configuration supplémentaire :

Le premier cas d'utilisation est parfait si vous avez des utilisateurs à travers le monde et que vous souhaitez stocker leurs données près d'eux. Par exemple, vous pouvez créer des compartiments 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 avez des données avec différents modèles d'accès. Par exemple : vous pouvez configurer un compartiment multirégional ou régional qui stocke des images ou d'autres contenus fréquemment consultés, et un compartiment Nearline ou Coldline qui stocke des sauvegardes d'utilisateurs ou d'autres contenus peu consultés.

Dans l'un ou l'autre de ces cas d'utilisation, vous souhaiterez 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 Firebase App personnalisée pour authentifier chaque compte supplémentaire.

Utiliser plusieurs buckets Cloud Storage

Si vous souhaitez utiliser un bucket Cloud Storage autre que celui fourni par défaut ci-dessus, ou utiliser plusieurs buckets Cloud Storage dans une seule application, vous pouvez créer une instance de FIRStorage qui fait référence à votre bucket personnalisé :

Rapide

// Get a non-default Cloud Storage bucket
storage = Storage.storage(url:"gs://my-custom-bucket")
    

Objectif c

// Get a non-default Cloud Storage bucket
FIRStorage storage = [FIRStorage storageWithURL:@"gs://my-custom-bucket"];
    

Travailler avec des buckets importés

Lors de l'importation d'un bucket Cloud Storage existant dans Firebase, vous devrez accorder à Firebase la possibilité d'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://<your-cloud-storage-bucket>

Vous pouvez trouver votre numéro de projet comme décrit dans l' introduction aux projets Firebase .

Cela n'affecte pas les compartiments nouvellement créés, car ceux-ci ont le contrôle d'accès par défaut 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'une FirebaseApp personnalisée, vous pouvez créer une instance de Storage initialisée avec cette application :

Rapide

// 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")
    

Objectif 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"];
    

Prochaines étapes