Catch up on everything we announced at this year's Firebase Summit. Learn more

Premiers pas avec Cloud Storage sur Android

Cloud Storage pour Firebase vous permet de télécharger et de partager du contenu généré par les utilisateurs, tel que des images et des vidéos, ce qui vous permet de créer du contenu multimédia riche dans vos applications. Vos données sont stockées dans un Google Cloud Storage seau - une solution de stockage d'objets à l'échelle exaoctets avec haute disponibilité et redondance globale. Cloud Storage for Firebase vous permet de télécharger en toute sécurité ces fichiers directement à partir d'appareils mobiles et de navigateurs Web, en gérant facilement les réseaux irréguliers.

Conditions préalables

Si vous avez pas déjà, 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 démarrer.

  2. Consultez les messages sur la sécurisation de vos données Cloud Storage à l'aide de règles de sécurité. Au cours du développement, envisager la mise en place de vos règles d'accès du public .

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

    • Ce paramètre de votre emplacement est de projet par défaut de Google Cloud Platform (GCP) Emplacement des ressources . Notez que cet endroit sera utilisé pour les services de GCP dans votre projet qui nécessite un paramètre d'emplacement, plus précisément, votre nuage Firestore base de données et votre App Engine application ( ce qui est nécessaire si vous utilisez Nuage Scheduler).

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

    Si vous êtes sur le plan Blaze, vous pouvez créer plusieurs seaux , 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 restreint afin que seuls les utilisateurs authentifiés puissent lire ou écrire des données. Pour commencer sans la mise en place d' authentification , vous pouvez configurer vos règles d'accès du public .

Cela rend Cloud Storage ouvert à tout le monde, même aux personnes n'utilisant pas votre application, alors assurez-vous de restreindre à nouveau votre Cloud Storage lorsque vous configurez l'authentification.

Ajouter le SDK Cloud Storage à votre application

Utilisation de la Firebase Android BoM , déclarer la dépendance de la bibliothèque Cloud Storage Android dans votre module (app-niveau) de fichier Gradle (généralement app/build.gradle ).

Java

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

    // Declare 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 le Firebase Android BoM , votre application utilise toujours des versions compatibles des bibliothèques Firebase Android.

(Alternative) déclarer des dépendances de bibliothèque firebase sans utiliser la nomenclature

Si vous choisissez de ne pas utiliser la nomenclature de Firebase, 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 fortement d' utiliser la BoM pour gérer les versions bibliothèque, ce qui garantit que toutes les versions sont compatibles.

dependencies {
    // Declare 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:20.0.0'
}

Kotlin+KTX

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

    // Declare 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-ktx'
}

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

(Alternative) déclarer des dépendances de bibliothèque firebase sans utiliser la nomenclature

Si vous choisissez de ne pas utiliser la nomenclature de Firebase, 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 fortement d' utiliser la BoM pour gérer les versions bibliothèque, ce qui garantit que toutes les versions sont compatibles.

dependencies {
    // Declare 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-ktx:20.0.0'
}

Configurer le stockage cloud

La première étape dans l' accès à votre seau Cloud Storage est de créer une instance de FirebaseStorage :

Java

FirebaseStorage storage = FirebaseStorage.getInstance();

Kotlin+KTX

storage = Firebase.storage

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

Tout d' abord, nous allons apprendre comment créer une référence Cloud Storage .

Configuration avancée

Il existe quelques cas d'utilisation qui nécessitent une configuration supplémentaire :

Le premier cas d'utilisation est parfait si vous avez des utilisateurs dans le monde entier 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 des modèles d'accès différents. 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 les sauvegardes des utilisateurs ou d'autres contenus rarement consultés.

Dans ces deux cas d'utilisation, vous souhaitez utiliser plusieurs seaux 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 coutume Firebase App exemple pour authentifier chaque compte supplémentaire.

Utiliser plusieurs buckets Cloud Storage

Si vous souhaitez utiliser un autre seau Cloud Storage que le défaut fourni ci - dessus, ou utiliser plusieurs seaux Cloud Storage dans une seule application, vous pouvez créer une instance de FirebaseStorage que les références de votre seau sur mesure:

Java

// Get a non-default Storage bucket
FirebaseStorage storage = FirebaseStorage.getInstance("gs://my-custom-bucket");

Kotlin+KTX

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

Utilisation de buckets importés

Lors de l' importation d' un seau existant Cloud Storage dans Firebase, vous devrez accorder Firebase la possibilité d'accéder à ces fichiers à l' aide du gsutil outil, 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 tel que décrit dans l' introduction aux projets Firebase .

Cela n'affecte pas les buckets 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 construisez une application plus complexe en utilisant une coutume FirebaseApp , vous pouvez créer une instance de FirebaseStorage initialisé avec cette application:

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

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

Prochaines étapes