Save the date - Google I/O returns May 18-20. Register to get the most out of the digital experience: Build your schedule, reserve space, participate in Q&As, earn Google Developer profile badges, and more. Register now
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Inizia con Cloud Storage su Android

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

Prerequisiti

Se non l'hai già fatto, aggiungi Firebase al tuo progetto Android .

Crea un bucket Cloud Storage predefinito

  1. Dal pannello 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 tue regole per l'accesso pubblico .

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

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

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

    Se hai un piano Blaze, puoi creare più bucket , ciascuno con la propria posizione .

  4. Fare clic su Fine .

Configura l'accesso pubblico

Cloud Storage per Firebase fornisce un linguaggio delle regole dichiarative che ti consente di definire come devono essere strutturati i tuoi dati, come devono 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, quindi solo gli utenti autenticati possono leggere o scrivere dati. Per iniziare senza configurare l' autenticazione , puoi configurare le tue regole per l'accesso pubblico .

Ciò rende Cloud Storage aperto a chiunque, anche a chi non utilizza la tua app, quindi assicurati di limitare nuovamente il tuo Cloud Storage quando imposti l'autenticazione.

Aggiungi l'SDK di Cloud Storage alla tua app

Utilizzando Firebase Android BoM , dichiara la dipendenza per la libreria Android di Cloud Storage nel file Gradle del modulo (a livello di app) (solitamente app/build.gradle ).

Giava

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:27.1.0')

    // Declare the dependency for the Cloud Storage library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-storage'
}

Utilizzando Firebase Android BoM , la tua app utilizzerà sempre versioni compatibili delle librerie Firebase Android.

(Alternativa) Dichiara le dipendenze della libreria Firebase senza utilizzare BoM

Se scegli di non utilizzare Firebase BoM, devi specificare ciascuna versione della libreria Firebase nella relativa riga di dipendenza.

Tieni presente che se utilizzi più librerie Firebase nella tua app, ti consigliamo vivamente di utilizzare BoM per gestire le versioni della libreria, il che garantisce che tutte le versioni siano compatibili.

dependencies {
    // Declare the dependency for the Cloud Storage library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-storage:19.2.2'
}

Kotlin + KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:27.1.0')

    // Declare the dependency for the Cloud Storage library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-storage-ktx'
}

Utilizzando Firebase Android BoM , la tua app utilizzerà sempre versioni compatibili delle librerie Firebase Android.

(Alternativa) Dichiara le dipendenze della libreria Firebase senza utilizzare BoM

Se scegli di non utilizzare Firebase BoM, devi specificare ciascuna versione della libreria Firebase nella relativa riga di dipendenza.

Tieni presente che se utilizzi più librerie Firebase nella tua app, ti consigliamo vivamente di utilizzare BoM per gestire le versioni della libreria, il che garantisce che tutte le versioni siano compatibili.

dependencies {
    // Declare the dependency for the Cloud Storage library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-storage-ktx:19.2.2'
}

Configura Cloud Storage

Il primo passaggio per accedere al tuo bucket Cloud Storage è creare un'istanza di FirebaseStorage :

Giava

FirebaseStorage storage = FirebaseStorage.getInstance();

Kotlin + KTX

storage = Firebase.storage

Sei pronto per iniziare a utilizzare Cloud Storage!

Per prima cosa, impariamo come creare un riferimento a 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 per ridurre la latenza.

Il secondo caso d'uso è utile se si dispone di dati con modelli di accesso diversi. Ad esempio: puoi configurare un bucket multiregionale o regionale che memorizza 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 di rado.

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 collegati (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 FirebaseStorage che fa riferimento al tuo bucket personalizzato:

Giava

// Get a non-default Storage bucket
FirebaseStorage storage = FirebaseStorage.getInstance("gs://my-custom-bucket");

Kotlin + KTX

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

Lavorare con secchi 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é quelli hanno il controllo di accesso predefinito impostato per consentire Firebase. Questa è una misura temporanea e verrà eseguita automaticamente in futuro.

Usa un'app Firebase personalizzata

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

Giava

// Get the default bucket from a custom FirebaseApp
FirebaseStorage storage = FirebaseStorage.getInstance(customApp);

// Get a non-default bucket from a custom FirebaseApp
FirebaseStorage customStorage = FirebaseStorage.getInstance(customApp, "gs://my-custom-bucket");

Kotlin + KTX

// Get the default bucket from a custom FirebaseApp
val storage = Firebase.storage(customApp!!)

// Get a non-default bucket from a custom FirebaseApp
val customStorage = Firebase.storage(customApp, "gs://my-custom-bucket")

Prossimi passi