Inizia a utilizzare Cloud Storage sulle piattaforme Apple

Cloud Storage for Firebase ti consente di caricare e condividere contenuti generati dagli utenti, come immagini e video, in modo da poter integrare contenuti multimediali avanzati nelle tue app. I tuoi dati vengono archiviati in un Google Cloud Storage bucket, una soluzione di archiviazione di oggetti su scala exabyte con elevata disponibilità 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 con facilità.

Prima di iniziare

  1. Se non l'hai già fatto, assicurati di aver completato la guida introduttiva per le app delle piattaforme Apple. Sono inclusi:

    • Creazione di un progetto Firebase.

    • Registrazione dell'app delle piattaforme Apple con il progetto, e collegamento dell'app a Firebase aggiungendo la libreria Firebase e il file di configurazione Firebase (GoogleService-Info.plist) all'app.

  2. Assicurati che il tuo progetto Firebase sia nel piano tariffario Blaze con pagamento a consumo, che è un requisito iniziato a ottobre 2024 (consulta le nostre domande frequenti). Se non conosci Firebase e Google Cloud, verifica se hai diritto a un credito di 300$.

Creare un bucket predefinitoCloud Storage

  1. Nel riquadro di navigazione della Firebase console, seleziona Storage.

    Se il tuo progetto non è ancora nel piano tariffario Blaze con pagamento a consumo, ti verrà chiesto di eseguirne l'upgrade.

  2. Fai clic su Inizia.

  3. Seleziona una località per il bucket predefinito.

  4. Configura il Firebase Security Rules per il bucket predefinito. Durante lo sviluppo, valuta la possibilità di configurare le regole per l'accesso pubblico.

  5. 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 i dati possono essere letti e scritti. 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 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 la authentication.

Aggiungere Cloud Storage all'app

Utilizza Swift Package Manager per installare e gestire le dipendenze di Firebase.

  1. In Xcode, con il progetto dell'app aperto, vai a File > Add Packages (File > Aggiungi pacchetti).
  2. Quando richiesto, aggiungi il repository dell'SDK delle piattaforme Apple di Firebase:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Scegli la libreria Cloud Storage.
  5. Aggiungi il flag -ObjC alla sezione Other Linker Flags (Altri flag del linker) delle impostazioni di compilazione del target.
  6. Al termine, Xcode inizierà automaticamente a risolvere e a scaricare le tue dipendenze in background.

Configurare Cloud Storage nell'app

  1. Inizializza Firebase prima di creare o utilizzare qualsiasi riferimento Firebase.

    Potresti aver già eseguito questa operazione se hai già configurato un altro prodotto Firebase, ma devi assicurarti di aggiungere la libreria FirebaseStorage all'elenco delle importazioni.

    1. Importa il modulo FirebaseCore e il modulo FirebaseStorage in UIApplicationDelegate. Ti consigliamo anche di aggiungere FirebaseAuth.

      SwiftUI

      import SwiftUI
      import FirebaseCore
      import FirebaseStorage
      import FirebaseAuth
      // ...
      

      Swift

      import FirebaseCore
      import FirebaseStorage
      import FirebaseAuth
      // ...
      

      Objective-C

      @import FirebaseCore;
      @import FirebaseStorage;
      @import FirebaseAuth;
      // ...
      
    2. Configura un'istanza condivisa nel metodo application(_:didFinishLaunchingWithOptions:) del delegato dell'app:FirebaseApp

      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];
      
    3. (Solo SwiftUI) Crea un delegato dell'applicazione e collegalo alla struttura App utilizzando UIApplicationDelegateAdaptor o NSApplicationDelegateAdaptor. Devi anche disattivare lo swizzling del delegato dell'app. Per saperne di più, 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()
            }
          }
        }
      }
      
  2. Ottieni un riferimento al servizio Cloud Storage utilizzando l'app Firebase predefinita.

    1. Assicurati che il file di configurazione Firebase (GoogleService-Info.plist) nel codebase dell'app sia aggiornato con il nome del bucket Cloud Storage predefinito.

      1. Ottieni il file di configurazione aggiornato..

      2. Utilizza questo file di configurazione scaricato per sostituire il file esistente GoogleService-Info.plist nella root 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).

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

Ora puoi iniziare a utilizzare Cloud Storage!

Qual è il passaggio successivo? Scopri come creare un Cloud Storage riferimento.

Configurazione avanzata

Esistono alcuni casi d'uso che richiedono una configurazione aggiuntiva:

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ù Cloud Storage bucket.

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ù Cloud Storage bucket

Se vuoi utilizzare un Cloud Storage bucket diverso da quello predefinito fornito sopra, o utilizzare più bucket Cloud Storage in una singola 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"];
    

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://BUCKET_NAME

Puoi trovare il numero del progetto come descritto nell' introduzione ai progetti Firebase.

Ciò non influisce sui bucket appena creati, poiché questi hanno il controllo dell'accesso predefinito impostato per consentire l'accesso a Firebase. Questa è una misura temporanea e verrà eseguita automaticamente in futuro.

Utilizzare un'app Firebase personalizzata

Se stai creando un'app più complessa utilizzando un'app FirebaseApp personalizzata, puoi creare un'istanza di Storage inizializzata con questa 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