Cloud Storage for Firebase ti consente di caricare e condividere contenuti generati dagli utenti, come immagini e video, in modo da poter creare contenuti multimediali avanzati nelle tue app. I dati vengono archiviati in un bucket Google Cloud Storage, una soluzione di archiviazione di oggetti su scala exabyte con elevata affidabilità e ridondanza globale. Cloud Storage for Firebase ti consente di caricare in modo sicuro questi file direttamente da dispositivi mobili e browser web, gestendo facilmente le reti instabili.
Prima di iniziare
Se non l'hai ancora fatto, assicurati di aver completato la guida introduttiva per le app Flutter. Sono inclusi:
Creazione di un progetto Firebase.
Installazione e inizializzazione degli SDK Firebase per Flutter.
Assicurati che il tuo progetto Firebase sia incluso nel piano tariffario Blaze con pagamento a consumo, un requisito introdotto a ottobre 2024 (consulta le nostre domande frequenti). Se non hai familiarità con Firebase e Google Cloud, verifica se hai diritto a un credito di 300$.
Creare un bucket Cloud Storage predefinito
Nel riquadro di navigazione della Firebase console, seleziona Storage.
Se il tuo progetto non è ancora incluso 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 "Sempre senza costi" livello per Google Cloud Storage. I bucket in tutte le altre località seguono Google Cloud Storage prezzi e utilizzo.US-WEST1Se vuoi, puoi creare più bucket in un secondo momento, ognuno con la propria località.
Configura il 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
Cloud Storage scheda
della Firebase console. Il formato del nome del bucket predefinito è
PROJECT_ID.firebasestorage.app
Configurare l'accesso pubblico
Cloud Storage for Firebase fornisce un linguaggio di regole dichiarativo che ti consente di definire la struttura dei dati, la modalità di indicizzazione e quando è possibile leggere e scrivere i dati. Per impostazione predefinita, l'accesso in lettura e scrittura a Cloud Storage è limitato, quindi solo gli utenti autenticati possono leggere o scrivere dati. Per iniziare senza configurare Firebase Authentication, puoi configurare le regole per l'accesso pubblico.
In questo modo, Cloud Storage è aperto a chiunque, anche a persone che non utilizzano la tua app, quindi assicurati di limitare di nuovo Cloud Storage quando configuri l'autenticazione.
Aggiungere l'SDK Cloud Storage all'app
Dalla directory principale del progetto Flutter, esegui il seguente comando per installare il plug-in:
flutter pub add firebase_storageAl termine, ricompila l'applicazione Flutter:
flutter runImporta il plug-in nel codice Dart:
import 'package:firebase_storage/firebase_storage.dart';
Configurazione di Cloud Storage
Esegui
flutterfire configuredalla directory del progetto Flutter. In questo modo, il file di configurazione di Firebase (firebase_options.dart) nel codebase dell'app viene aggiornato in modo da includere il nome del bucket Cloud Storage predefinito.Accedi al bucket Cloud Storage creando un'istanza di
FirebaseStorage:final storage = FirebaseStorage.instance; // Alternatively, explicitly specify the bucket name URL. // final storage = FirebaseStorage.instanceFor(bucket: "gs://<var>BUCKET_NAME</var>");
Ora puoi iniziare a utilizzare Cloud Storage.
Qual è il passaggio successivo? Scopri come creare un riferimento a 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 diverse classi di archiviazione
- Utilizzo di 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 nelle vicinanze. 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 a cui si accede di frequente e un bucket nearline o coldline che archivia backup degli utenti o altri contenuti a cui si accede di rado.
In entrambi questi 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 avere più account con accesso (ad esempio, un account personale e un account di lavoro). Puoi utilizzare un'istanza dell'app Firebase personalizzata per autenticare ogni account aggiuntivo.
Utilizzare più bucket Cloud Storage
Se vuoi utilizzare un bucket Cloud Storage diverso da quello predefinito fornito sopra o utilizzare più bucket Cloud Storage in una singola app, puoi creare un'istanza di FirebaseStorage che fa riferimento al bucket personalizzato:
// Get a non-default Storage bucket
final storage = FirebaseStorage.instanceFor(bucket: "gs://my-custom-bucket");
Utilizzare i 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 in Google Cloud SDK:
gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://YOUR-CLOUD-STORAGE-BUCKET
Puoi trovare il numero di progetto come descritto nell'introduzione ai progetti Firebase.
Questo non influisce sui bucket appena creati, poiché questi hanno il controllo dell'accesso predefinito impostato per consentire Firebase. Si tratta di una misura temporanea che verrà eseguita automaticamente in futuro.
Utilizzare un'app Firebase personalizzata
Se stai creando un'app più complessa utilizzando un FirebaseApp personalizzato, puoi creare un'istanza di FirebaseStorage inizializzata con questa app:
// Use a non-default App
final storage = FirebaseStorage.instanceFor(app: customApp);
Passaggi successivi
- Prepararsi al lancio dell'app:
- Attiva App Check per assicurarti che solo le tue app possano accedere ai bucket di archiviazione.
- Configura gli avvisi di budget per il tuo progetto nella console Google Cloud.
- Monitora la dashboard Utilizzo e fatturazione nella Console Firebase per avere una visione generale dell'utilizzo del tuo progetto in più servizi Firebase. Puoi anche visitare la dashboard Utilizzo di Cloud Storage per informazioni sull'utilizzo più dettagliate.
- Esamina la checklist di lancio di Firebase.