Cloud Storage per Firebase ti consente di caricare e condividere contenuti generati dagli utenti, come immagini e video, il che ti consente di creare contenuti multimediali avanzati nelle tue app. I dati vengono archiviati in un bucket Google Cloud Storage, una soluzione di archiviazione di oggetti con scalabilità in exabyte ad alta disponibilità e ridondanza globale. Cloud Storage for Firebase ti consente di caricare questi file in modo sicuro direttamente da dispositivi mobili e browser web, gestendo facilmente le reti con segnale discontinuo.
Prima di iniziare
Se non l'hai ancora fatto, assicurati di aver completato la guida introduttiva per le app Flutter. Sono inclusi:
È in corso la creazione di un progetto Firebase.
Installazione e inizializzazione degli SDK Firebase per Flutter.
Assicurati che il tuo progetto Firebase sia in uso con il piano tariffario Blaze di pagamento in base al consumo. Se non hai mai utilizzato Firebase e Google Cloud, controlla se hai diritto a un credito di 300 $.
Creare un bucket Cloud Storage predefinito
Nel riquadro di navigazione della console Firebase, seleziona Archiviazione.
Se il tuo progetto non utilizza ancora il piano tariffario Blaze di pagamento a consumo, ti verrà chiesto di eseguire l'upgrade.
Fai clic su Inizia.
Seleziona una posizione per il bucket predefinito.
I bucket in
,US-CENTRAL1
eUS-EAST1
possono usufruire del livello "Sempre senza costi" per Google Cloud Storage. I bucket in tutte le altre località rispettano i prezzi e l'utilizzo di Google Cloud Storage.US-WEST1
Se vuoi, in un secondo momento puoi creare più bucket, ciascuno con la sua posizione.
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
Cloud Storage scheda File
della console Firebase. Il formato predefinito del nome del bucket è
PROJECT_ID.firebasestorage.app
Configurare l'accesso pubblico
Cloud Storage per Firebase fornisce un linguaggio di regole dichiarative che ti consente di definire la struttura dei 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 Firebase Authentication, puoi configurare le regole per l'accesso pubblico.
In questo modo, Cloud Storage è aperto a chiunque, anche a chi non utilizza 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 tuo progetto Flutter, esegui questo comando per installare il plug-in:
flutter pub add firebase_storage
Al termine, ricrea l'applicazione Flutter:
flutter run
Importa il plug-in nel codice Dart:
import 'package:firebase_storage/firebase_storage.dart';
Configurazione di Cloud Storage
Esegui
flutterfire configure
dalla directory del progetto Flutter. Il file di configurazione di Firebase (firebase_options.dart
) viene aggiornato nel codebase della tua app in modo che abbia il nome del bucket Cloud Storage predefinito.Accedi al tuo 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.
Passaggio successivo? Scopri come creare un riferimento Cloud Storage.
Configurazione avanzata
Alcuni casi d'uso richiedono una configurazione aggiuntiva:
- Utilizzo di bucket Cloud Storage in più regioni geografiche
- Utilizzo dei 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 memorizzare i loro dati nelle vicinanze. Ad esempio, puoi creare bucket negli Stati Uniti, in Europa e in Asia per archiviare i dati degli utenti di quelle regioni al fine di 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 memorizza immagini o altri contenuti a cui si accede di frequente e un bucket nearline o coldline che memorizza i backup degli utenti o altri contenuti a cui si accede di rado.
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 avere più account su cui hanno eseguito l'accesso (ad esempio un account personale e un account di lavoro). Puoi utilizzare un'istanza di 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 un'unica app, puoi creare un'istanza di FirebaseStorage
che fa riferimento al tuo bucket personalizzato:
// Get a non-default Storage bucket
final storage = FirebaseStorage.instanceFor(bucket: "gs://my-custom-bucket");
Utilizzo dei bucket importati
Quando importi un bucket Cloud Storage esistente in Firebase, devi grant 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://YOUR-CLOUD-STORAGE-BUCKET
Puoi trovare il numero del progetto come descritto nell'introduzione ai progetti Firebase.
Ciò non influisce sui bucket appena creati, in quanto per questi il controllo dell'accesso predefinito è impostato su Consenti 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 l'app:
// Use a non-default App
final storage = FirebaseStorage.instanceFor(app: customApp);
Passaggi successivi
- Preparati a lanciare l'app:
- Attiva App Check per assicurarti che solo le tue app possano accedere ai tuoi bucket di archiviazione.
- Configura 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 complessivo dell'utilizzo del tuo progetto su più servizi Firebase. Puoi anche visitare la dashboard Utilizzo di Cloud Storage per informazioni più dettagliate sull'utilizzo.
- Esamina l'elenco di controllo per il lancio di Firebase.