Cloud Storage for Firebase ti consente di caricare e condividere contenuti generati dagli utenti, come immagini e video, in modo da creare contenuti multimediali nelle tue app. I tuoi dati vengono archiviati in un Google Cloud Storage bucket, una soluzione di archiviazione degli oggetti su larga scala exabyte con alta disponibilità e ridondanza globale. Cloud Storage for Firebase ti consente di caricare questi file in sicurezza direttamente da dispositivi mobili e browser web, gestendo facilmente le reti con segnale debole.
Prima di iniziare
Se non l'hai ancora fatto, assicurati di aver completato la guida introduttiva per le app per le piattaforme Apple. Sono inclusi:
Creare un progetto Firebase.
Registra la tua app per le piattaforme Apple con il progetto e collegala a Firebase aggiungendo la libreria Firebase e il file di configurazione Firebase (
GoogleService-Info.plist
) all'app.
Assicurati che il tuo progetto Firebase sia in uso con il piano tariffario Blaze con pagamento a consumo. Se non hai mai utilizzato Firebase e Google Cloud, controlla se hai diritto a un credito di 300$.
Crea 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 con 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"Always Free" 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 for Firebase fornisce un linguaggio di regole dichiarative 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 sarà aperto a chiunque, anche a chi non utilizza la tua app, quindi assicurati di limitare di nuovo Cloud Storage quando configuri l'autenticazione.
Aggiungere Cloud Storage all'app
Utilizza Swift Package Manager per installare e gestire le dipendenze di Firebase.
- In Xcode, con il progetto dell'app aperto, vai a File > Aggiungi pacchetti.
- Quando richiesto, aggiungi il repository dell'SDK delle piattaforme Apple di Firebase:
- Scegli la raccolta Cloud Storage.
- Aggiungi il flag
-ObjC
alla sezione Altri flag del linker delle impostazioni di compilazione del target. - Al termine, Xcode inizierà automaticamente a risolvere e a scaricare le tue dipendenze in background.
https://github.com/firebase/firebase-ios-sdk.git
Configurare Cloud Storage nell'app
Inizializza Firebase prima che venga creato o utilizzato un riferimento Firebase.
Potresti averlo già fatto se hai già configurato un altro prodotto Firebase, ma devi assicurarti di aggiungere la libreria
FirebaseStorage
al tuo elenco di importazioni.Importa il modulo
FirebaseCore
e il moduloFirebaseStorage
nelUIApplicationDelegate
. Ti consigliamo inoltre di aggiungereFirebaseAuth
.SwiftUI
import SwiftUI import FirebaseCore import FirebaseStorage import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseStorage import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseStorage; @import FirebaseAuth; // ...
Configura un'istanza condivisa
FirebaseApp
nel metodoapplication(_:didFinishLaunchingWithOptions:)
del tuo app delegate:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
(Solo SwiftUI) Crea un delegato dell'applicazione e associalo alla tua struttura
App
utilizzandoUIApplicationDelegateAdaptor
oNSApplicationDelegateAdaptor
. Devi anche disattivare lo scambio del delegato dell'app. Per ulteriori informazioni, consulta le istruzioni di SwiftUI.SwiftUI
@main struct YourApp: App { // Register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
Ottieni un riferimento al servizio Cloud Storage utilizzando l'app Firebase predefinita.
Assicurati che il file di configurazione di Firebase (
GoogleService-Info.plist
) 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
GoogleService-Info.plist
esistente nella directory principale del progetto Xcode. Se richiesto, seleziona l'opzione per aggiungere il file di configurazione a tutti i target.Assicurati di avere solo questo file di configurazione scaricato più di recente nella tua app e che al nome del file non vengano aggiunti caratteri aggiuntivi, ad esempio
(2)
.
Ottieni un riferimento al servizio Cloud Storage utilizzando l'app Firebase predefinita:
Swift
let storage = Storage.storage()
// Alternatively, explicitly specify the bucket name URL. storage = Storage.storage(url:"gs://BUCKET_NAME")
Objective-C
FIRStorage *storage = [FIRStorage storage];
// Alternatively, explicitly specify the bucket name URL. // FIRStorage storage = [FIRStorage storageWithURL:@"gs://BUCKET_NAME"];
Puoi iniziare a usare 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 di bucket Cloud Storage in classi di archiviazione diverse
- 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 in queste 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, 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 dell'app Firebase per autenticare ogni account aggiuntivo.
Utilizzare più bucket Cloud Storage
Se vuoi utilizzare un bucket Cloud Storage diverso da quello predefinito fornito sopra o più bucket Cloud Storage in un'unica app, puoi creare un'istanza di FIRStorage
che fa riferimento al tuo bucket personalizzato:
Swift
// Get a non-default Cloud Storage bucket
storage = Storage.storage(url:"gs://my-custom-bucket")
Objective-C
// Get a non-default Cloud Storage bucket
FIRStorage storage = [FIRStorage storageWithURL:@"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://BUCKET_NAME
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 Storage
inizializzata con l'app:
Swift
// Get the default bucket from a custom FirebaseApp storage = Storage.storage(app:customApp) // Get a non-default bucket from a custom FirebaseApp storage = Storage.storage(app:customApp, url:"gs://my-custom-bucket")
Objective-C
// Get the default bucket from a custom FIRApp FIRStorage storage = [FIRStorage storageForApp:customApp]; // Get a non-default bucket from a custom FIRApp FIRStorage storage = [FIRStorage storageForApp:customApp withURL:@"gs://my-custom-bucket"];
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 gli avvisi sul 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 progetto su più servizi Firebase. Puoi anche visitare la Cloud Storage dashboard Utilizzo per informazioni più dettagliate sull'utilizzo.