Premiers pas avec Cloud Storage sur Android

Cloud Storage for Firebase vous permet d'importer et de partager du contenu généré par l'utilisateur, tel que comme les images et les vidéos, ce qui vous permet d'intégrer du contenu rich media applications. Vos données sont stockées Bucket Google Cloud Storage : un solution de stockage d'objets à l'échelle de l'exaoctet, offrant une haute disponibilité et redondance. Cloud Storage for Firebase vous permet d'importer ces fichiers de manière sécurisée directement à partir d'appareils mobiles et de navigateurs Web, ce qui permet de gérer les réseaux instables avec en toute simplicité.

Prérequis

Si ce n'est pas encore fait, ajoutez Firebase à votre projet Android.

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 Commencer.

  2. Consultez le message sur la sécurisation de vos données Cloud Storage avec la sécurité des règles de pare-feu. Pendant le développement, tenez compte Configurer vos règles d'accès public

  3. Sélectionnez un emplacement pour l'emplacement par défaut. Cloud Storage.

    • Ce paramètre d'emplacement correspond à l'emplacement par défaut des ressources Google Cloud Platform (GCP) pour le projet. Cet emplacement sera utilisé pour les services GCP exploités dans le projet qui requièrent un paramètre d'emplacement, plus précisément votre base de données Cloud Firestore et votre application App Engine (qui est nécessaire si vous utilisez Cloud Scheduler).

    • Si vous ne parvenez pas à sélectionner un emplacement, c'est que votre projet dispose déjà d'un emplacement par défaut des ressources GCP. 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 d'emplacement.

    Si vous utilisez le forfait Blaze, vous pouvez créer plusieurs buckets, chacun avec sa propre zone.

  4. Cliquez sur OK.

Configurer l'accès public

Cloud Storage for Firebase fournit un langage de règles déclaratives qui vous permet pour définir la façon dont vos données doivent être structurées, comment elles doivent être indexées et à quel moment vos données peuvent être lues et écrites. Par défaut, l'accès en lecture et en écriture à Cloud Storage est limité de sorte que seuls les utilisateurs authentifiés peuvent lire ou écrire des données 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 N'oubliez donc pas de restreindre de nouveau votre Cloud Storage lors de la configuration l'authentification unique.

Ajouter le SDK Cloud Storage à votre application

Dans le fichier Gradle de votre module (au niveau de l'application) (généralement <project>/<app-module>/build.gradle.kts ou <project>/<app-module>/build.gradle), ajoutez la dépendance pour la bibliothèque Cloud Storage pour Android. Nous vous recommandons d'utiliser Firebase Android BoM pour contrôler la gestion des versions des bibliothèques.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:33.2.0"))

    // Add the dependency for the Cloud Storage library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-storage")
}

En utilisant Firebase Android BoM, votre application utilisera toujours des versions compatibles des bibliothèques Firebase Android.

(Alternative) Ajouter des dépendances de la bibliothèque Firebase sans utiliser l'BoM

Si vous choisissez de ne pas utiliser Firebase BoM, vous devez spécifier chaque version de la bibliothèque Firebase dans sa ligne de dépendance.

Notez que si vous utilisez plusieurs bibliothèques Firebase dans votre application, nous vous recommandons vivement d'utiliser BoM pour gérer les versions de la bibliothèque, ce qui garantit que toutes les versions sont compatibles.

dependencies {
    // Add the dependency for the Cloud Storage library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-storage:21.0.0")
}
Vous recherchez un module de bibliothèque spécifique à Kotlin ? Début dans Octobre 2023 (Firebase BoM 32.5.0), les développeurs Kotlin et Java peuvent dépendent du module de bibliothèque principal (pour en savoir plus, consultez Questions fréquentes sur cette initiative).

Configurer Cloud Storage

La première étape pour accéder à votre bucket Cloud Storage consiste à créer Instance de FirebaseStorage:

Kotlin KTX

storage = Firebase.storage

Java

FirebaseStorage storage = FirebaseStorage.getInstance();

Vous pouvez maintenant utiliser Cloud Storage !

Découvrons tout d'abord comment créer un Cloud Storage référence.

Configuration avancée

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

Le premier cas d'utilisation est idéal si vous avez des utilisateurs dans le monde entier pour stocker leurs données à proximité. Par exemple, vous pouvez créer des buckets aux États-Unis, l'Europe et l'Asie pour stocker les données des utilisateurs dans 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 l'un ou l'autre de ces cas d'utilisation, utilisez plusieurs buckets Cloud Storage.

Le troisième cas d'utilisation est utile si vous développez une application, comme Google Drive, permet aux utilisateurs de disposer de plusieurs comptes connectés (par exemple, un compte personnel) et un compte professionnel). Vous pouvez Utiliser une 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 utiliser plusieurs buckets Cloud Storage dans une même application, vous pouvez créer une instance de FirebaseStorage qui fait référence à votre bucket personnalisé:

Kotlin KTX

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

Java

// Get a non-default Storage bucket
FirebaseStorage storage = FirebaseStorage.getInstance("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://<your-cloud-storage-bucket>

Vous pouvez trouver 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 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éez une instance de FirebaseStorage initialisée avec cette application:

Kotlin KTX

// Get the default bucket from a custom FirebaseApp
val storage = Firebase.storage(customApp!!)

// Get a non-default bucket from a custom FirebaseApp
val customStorage = Firebase.storage(customApp, "gs://my-custom-bucket")

Java

// Get the default bucket from a custom FirebaseApp
FirebaseStorage storage = FirebaseStorage.getInstance(customApp);

// Get a non-default bucket from a custom FirebaseApp
FirebaseStorage customStorage = FirebaseStorage.getInstance(customApp, "gs://my-custom-bucket");

Étapes suivantes