Inizia con Cloud Storage su piattaforme Apple

Cloud Storage for Firebase ti consente di caricare e condividere contenuti generati dagli utenti, come immagini e video, che ti consentono di creare contenuti multimediali nelle tue app. I tuoi dati vengono archiviati in un bucket Google Cloud Storage , una soluzione di archiviazione di oggetti su scala exabyte con disponibilità elevata e ridondanza globale. Cloud Storage for Firebase ti consente di caricare in modo sicuro questi file direttamente da dispositivi mobili e browser Web, gestendo con facilità reti irregolari.

Prerequisiti

  1. Installa l'SDK di Firebase .
  2. Aggiungi la tua app al tuo progetto Firebase nella console Firebase .

Crea un bucket Cloud Storage predefinito

  1. Dal riquadro di navigazione della console Firebase , seleziona Archiviazione , quindi fai clic su Inizia .

  2. Esamina i messaggi sulla protezione dei dati di Cloud Storage utilizzando le regole di sicurezza. Durante lo sviluppo, valuta la possibilità di impostare le regole per l'accesso pubblico .

  3. Seleziona una posizione per il tuo bucket Cloud Storage predefinito.

    • Questa impostazione di posizione è la posizione predefinita della risorsa Google Cloud Platform (GCP) del tuo progetto. Tieni presente che questa posizione verrà utilizzata per i servizi GCP nel tuo progetto che richiedono un'impostazione della posizione, in particolare il database Cloud Firestore e l'app App Engine (che è necessaria se utilizzi Cloud Scheduler).

    • Se non riesci a selezionare una posizione, significa che il tuo progetto ha già una posizione di risorsa GCP predefinita. È stato impostato durante la creazione del progetto o durante la configurazione di un altro servizio che richiede l'impostazione della posizione.

    Se disponi del piano Blaze, puoi creare più bucket , ciascuno con la propria posizione .

  4. Fare clic su Fine .

Configura l'accesso pubblico

Cloud Storage for Firebase fornisce un linguaggio di regole dichiarative che ti consente di definire come i tuoi dati dovrebbero essere strutturati, come dovrebbero essere indicizzati e quando i tuoi dati possono essere letti e scritti. Per impostazione predefinita, l'accesso in lettura e scrittura a Cloud Storage è limitato in modo che solo gli utenti autenticati possano leggere o scrivere dati. Per iniziare senza impostare l'autenticazione , puoi configurare le regole per l'accesso pubblico .

Ciò rende Cloud Storage aperto a chiunque, anche alle persone che non utilizzano la tua app, quindi assicurati di limitare nuovamente il tuo Cloud Storage quando configuri l'autenticazione.

Aggiungi Cloud Storage alla tua 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 .
  2. Quando richiesto, aggiungi il repository SDK delle piattaforme Apple Firebase:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Scegli la libreria Cloud Storage.
  5. Aggiungi il flag -ObjC alla sezione Altri flag del linker delle impostazioni di build del tuo target.
  6. Al termine, Xcode inizierà automaticamente a risolvere e scaricare le tue dipendenze in background.

Configura l'archiviazione sul cloud

È necessario inizializzare Firebase prima che venga creato o utilizzato qualsiasi riferimento Firebase. Se lo hai già fatto per un'altra funzionalità di Firebase, puoi saltare questo passaggio.

  1. Importa il modulo FirebaseCore nel tuo UIApplicationDelegate , così come tutti gli altri moduli Firebase utilizzati dal delegato dell'app. Ad esempio, per utilizzare Cloud Firestore e l'autenticazione:

    SwiftUI

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Veloce

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Obiettivo-C

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

    SwiftUI

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Veloce

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Obiettivo-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. Se utilizzi SwiftUI, devi creare un delegato dell'applicazione e allegarlo alla struttura App tramite UIApplicationDelegateAdaptor o NSApplicationDelegateAdaptor . È inoltre necessario disattivare lo swizzling 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()
          }
        }
      }
    }
          
  4. Ottieni un riferimento al servizio Cloud Storage, utilizzando l'app Firebase predefinita:

    Veloce

    let storage = Storage.storage()
    

    Obiettivo-C

    FIRStorage *storage = [FIRStorage storage];
    

Sei pronto per iniziare a utilizzare Cloud Storage!

Innanzitutto, impariamo come creare un riferimento Cloud Storage .

Impostazioni avanzate

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

Il primo caso d'uso è perfetto se hai utenti in tutto il mondo e desideri archiviare i loro dati vicino a loro. Ad esempio, puoi creare bucket negli Stati Uniti, in Europa e in Asia per archiviare i dati per gli utenti in quelle regioni e ridurre la latenza.

Il secondo caso d'uso è utile se disponi di dati con modelli di accesso diversi. Ad esempio: puoi impostare un bucket multiregionale o regionale che archivia immagini o altri contenuti a cui si accede frequentemente e un bucket Nearline o Coldline che archivia i backup degli utenti o altri contenuti a cui si accede raramente.

In uno di 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 registrati (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 desideri 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 FIRStorage che fa riferimento al tuo bucket personalizzato:

Veloce

// Get a non-default Cloud Storage bucket
storage = Storage.storage(url:"gs://my-custom-bucket")
    

Obiettivo-C

// Get a non-default Cloud Storage bucket
FIRStorage storage = [FIRStorage storageWithURL:@"gs://my-custom-bucket"];
    

Utilizzo di bucket importati

Quando importi un bucket Cloud Storage esistente in Firebase, dovrai 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 del tuo progetto come descritto nell'introduzione ai progetti Firebase .

Ciò non influisce sui bucket appena creati, poiché questi hanno il controllo di accesso predefinito impostato per consentire Firebase. Si tratta di una misura temporanea e verrà eseguita automaticamente in futuro.

Utilizza un'app Firebase personalizzata

Se stai creando un'app più complicata utilizzando una FirebaseApp personalizzata, puoi creare un'istanza di Storage inizializzata con quell'app:

Veloce

// 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")
    

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

Prossimi passi