Cloud Storage for Firebase ti consente di caricare e condividere contenuti generati dagli utenti, come immagini e video, per creare contenuti multimediali avanzati nelle tue app. I tuoi dati vengono archiviati in un bucket Google Cloud Storage, una soluzione di archiviazione di oggetti su scala exabyte con alta affidabilità e ridondanza globale. Cloud Storage for Firebase ti consente di caricare questi file in modo sicuro direttamente da dispositivi mobili e browser web, gestendo con facilità le reti instabili.
Prima di iniziare
Se non l'hai ancora fatto, assicurati di aver completato la guida introduttiva per le app per Android. È incluso quanto segue:
Crea un progetto Firebase.
Registrazione dell'app per Android nel progetto e collegamento dell'app a Firebase aggiungendo le dipendenze di Firebase, il plug-in dei servizi Google e il file di configurazione di Firebase (
google-services.json) all'app.
Assicurati che il tuo progetto Firebase sia nel piano tariffario Blaze con pagamento a consumo, che è un requisito per utilizzare Cloud Storage for Firebase. Se non hai mai utilizzato Firebase e Google Cloud, verifica se hai diritto a un credito di 300$.
Crea un bucket Cloud Storage predefinito
Nella console Firebase, vai a Database e spazio di archiviazione > Spazio di archiviazione.
Se il tuo progetto non è ancora nel piano tariffario Blaze con pagamento a consumo, ti verrà chiesto di eseguire l'upgrade.
Fai clic su Inizia.
Seleziona una località per il bucket predefinito.
I bucket in
,US-CENTRAL1 eUS-EAST1 possono usufruire del livello "Always Free" per Google Cloud Storage. I bucket in tutte le altre località seguono i prezzi e l'utilizzo di Google Cloud Storage.US-WEST1Se vuoi, in un secondo momento puoi creare più bucket, ciascuno con la propria località.
Configura Firebase Security Rules per il bucket predefinito. Durante lo sviluppo, valuta la possibilità di configurare le regole per l'accesso pubblico.
Fai clic su Fine.
Ora puoi visualizzare il bucket nella console Firebase (vai alla scheda Database e spazio di archiviazione > Spazio di archiviazione > File).
Il formato del nome del bucket predefinito è PROJECT_ID.firebasestorage.app
Configura l'accesso pubblico
Cloud Storage for Firebase fornisce un linguaggio di regole dichiarativo che ti consente di definire come devono essere strutturati i dati, come devono essere indicizzati e quando possono essere letti e scritti. Per impostazione predefinita, l'accesso in lettura e scrittura a Cloud Storage è limitato, pertanto solo gli utenti autenticati possono leggere o scrivere dati. Per iniziare senza configurare Authentication, puoi configurare le regole per l'accesso pubblico.
In questo modo, Cloud Storage diventa accessibile a chiunque, anche a chi non utilizza la tua app, quindi assicurati di limitare nuovamente Cloud Storage quando configuri l'autenticazione.
Aggiungi l'SDK Cloud Storage alla tua app
Nel file Gradle del modulo (a livello di app) (di solito<project>/<app-module>/build.gradle.kts o <project>/<app-module>/build.gradle), aggiungi la dipendenza per la libreria Cloud Storage per Android. Ti consigliamo di utilizzare la
Firebase Android BoM
per controllare il controllo delle versioni della libreria.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:35.0.1")) // 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") }
Con la Firebase Android BoM, la tua app utilizzerà sempre versioni compatibili delle librerie Firebase Android.
(Alternativa) Aggiungi le dipendenze della libreria Firebase senza utilizzare BoM
Se scegli di non utilizzare la Firebase BoM, devi specificare ogni versione della libreria Firebase nella riga di dipendenza.
Tieni presente che se utilizzi più librerie Firebase nella tua app, ti consigliamo vivamente di utilizzare BoM per gestire le versioni delle librerie, in modo da garantire che tutte le versioni siano compatibili.
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:23.0.0") }
Configura Cloud Storage nella tua app
Assicurati che il file di configurazione di Firebase (
google-services.json) nel codebase della tua app sia aggiornato con il nome del bucket Cloud Storage predefinito.Utilizza questo file di configurazione scaricato per sostituire il file
google-services.jsonesistente nella directory del modulo (a livello di app) della tua app.Assicurati di avere solo questo file di configurazione scaricato più di recente nella tua app e che al nome file non vengano aggiunti caratteri aggiuntivi, ad esempio
(2).
Accedi al tuo bucket Cloud Storage creando un'istanza di
FirebaseStorage:Kotlin
storage = Firebase.storage
// Alternatively, explicitly specify the bucket name URL. // val storage = Firebase.storage("gs://BUCKET_NAME")
Java
FirebaseStorage storage = FirebaseStorage.getInstance();
// Alternatively, explicitly specify the bucket name URL. // FirebaseStorage storage = FirebaseStorage.getInstance("gs://BUCKET_NAME");
Puoi iniziare a usare Cloud Storage.
Passaggio successivo? Scopri come creare un riferimento Cloud Storage.
Configurazione avanzata
Esistono alcuni casi d'uso che richiedono una configurazione aggiuntiva:
- Utilizzo di bucket Cloud Storage in più regioni geografiche
- Utilizzo di bucket Cloud Storage in classi di archiviazione diverse
- Utilizzo dei bucket Cloud Storage con più utenti autenticati nella stessa app
Il primo caso d'uso è perfetto se hai utenti in tutto il mondo e vuoi archiviare i loro dati vicino a loro. Ad esempio, puoi creare bucket negli Stati Uniti, in Europa e in Asia per archiviare i dati degli utenti in queste regioni e ridurre la latenza.
Il secondo caso d'uso è utile se hai dati con pattern di accesso diversi. Ad esempio, puoi configurare un bucket multiregionale o regionale che archivia immagini o altri contenuti ad accesso frequente e un bucket Nearline o Coldline che archivia i backup degli utenti o altri contenuti ad accesso non frequente.
In entrambi i casi d'uso, ti consigliamo di utilizzare più bucket Cloud Storage.
Il terzo caso d'uso è utile se stai creando un'app, come Google Drive, che consente agli utenti di accedere con più account (ad esempio, un account personale e un account di lavoro). Puoi utilizzare un'istanza dell'app Firebase personalizzata per autenticare ogni account aggiuntivo.
Utilizza più bucket Cloud Storage
Se vuoi utilizzare un bucket Cloud Storage diverso da quello predefinito descritto in precedenza in questa guida o utilizzare più bucket Cloud Storage in un'unica app, puoi creare un'istanza di FirebaseStorage che fa riferimento al tuo bucket personalizzato:
Kotlin
// 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");
Utilizzo dei bucket importati
Quando importi un bucket Cloud Storage esistente in Firebase, devi concedere a Firebase la possibilità di accedere a questi file utilizzando lo strumento gsutil, incluso nell'SDK Google Cloud:
gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://BUCKET_NAME
Puoi trovare il numero del progetto come descritto nell'introduzione ai progetti Firebase.
Ciò non influisce sui bucket appena creati, poiché il controllo degli accessi predefinito è impostato per consentire Firebase. Si tratta di una misura temporanea che in futuro verrà eseguita automaticamente.
Utilizza un'app Firebase personalizzata
Se stai creando un'app più complessa utilizzando un FirebaseApp personalizzato, puoi creare un'istanza di FirebaseStorage inizializzata con l'app:
Kotlin
// 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");
Passaggi successivi
Preparati a lanciare la tua app:
Attiva App Check per assicurarti che solo le tue app possano accedere ai bucket di archiviazione.
Configura gli avvisi relativi al budget per il tuo progetto nella console Google Cloud.
Monitora la dashboard Utilizzo e fatturazione nella console Firebase per avere un quadro generale dell'utilizzo del progetto in più servizi Firebase. Puoi anche visitare la dashboard Cloud Storage Utilizzo per informazioni più dettagliate sull'utilizzo.
Consulta l'elenco di controllo per il lancio di Firebase.