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 vostri dati sono memorizzati in un Google Cloud Storage secchio - una soluzione di storage oggetto scala Exabyte con alta disponibilità 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 reti irregolari.

Prerequisiti

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

Crea un bucket Cloud Storage predefinito

  1. Dal pannello di navigazione della console Firebase , selezionare bagagli, quindi fare clic su Inizia.

  2. Esamina i messaggi sulla protezione dei dati di Cloud Storage utilizzando le regole di sicurezza. Durante lo sviluppo, prendere in considerazione la creazione di proprie regole per l'accesso pubblico .

  3. Selezionare un percorso per il secchio di default Cloud Storage.

    • Questa impostazione posizione è del progetto di default posizione risorsa Google Cloud Platform (GCP) . Si noti che questa posizione sarà utilizzata per i servizi GCP nel progetto che richiedono un'impostazione di località, in particolare, il vostro cloud FireStore base di dati e la vostra App Engine app (che è necessario se si utilizza nube di pianificazione).

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

    Se siete sul piano di Blaze, è possibile creare più secchi , ciascuno con la propria posizione .

  4. Fai clic su Fine.

Configura l'accesso pubblico

Cloud Storage per Firebase fornisce un linguaggio di regole dichiarative che ti consente di definire come dovrebbero essere strutturati i tuoi dati, 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 la creazione di autenticazione , è possibile configurare le regole per l'accesso del 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 l'SDK Cloud Storage alla tua app

Utilizzando la Firebase Android BoM , dichiarare la dipendenza per la libreria Cloud Storage Android nel modulo (a livello di app) File Gradle (di solito app/build.gradle ).

Giava

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:28.3.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'
}

Usando il Firebase Android BoM , la vostra applicazione sarà sempre utilizzare versioni compatibili delle librerie Firebase Android.

(Alternativa) Dichiarare Firebase dipendenze delle librerie senza utilizzare la distinta

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

Si noti che se si utilizzano più librerie Firebase nella vostra app, ti consigliamo di utilizzare la distinta di gestire versioni della libreria, che assicura che tutte le versioni sono 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:20.0.0'
}

Kotlin+KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:28.3.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'
}

Usando il Firebase Android BoM , la vostra applicazione sarà sempre utilizzare versioni compatibili delle librerie Firebase Android.

(Alternativa) Dichiarare Firebase dipendenze delle librerie senza utilizzare la distinta

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

Si noti che se si utilizzano più librerie Firebase nella vostra app, ti consigliamo di utilizzare la distinta di gestire versioni della libreria, che assicura che tutte le versioni sono 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:20.0.0'
}

Configura l'archiviazione cloud

Il primo passo per l'accesso al tuo secchio Cloud Storage è quello di creare un'istanza di FirebaseStorage :

Giava

FirebaseStorage storage = FirebaseStorage.getInstance();

Kotlin+KTX

storage = Firebase.storage

Sei pronto per iniziare a utilizzare Cloud Storage!

In primo luogo, cerchiamo di imparare a 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 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 archivia immagini o altri contenuti a cui si accede di frequente 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ù secchi Cloud Storage .

Il terzo caso d'uso è utile se stai creando un'app, come Google Drive, che consente agli utenti di accedere a più account (ad esempio, un account personale e un account di lavoro). È possibile utilizzare un Firebase App personalizzata esempio per autenticare ogni account aggiuntivo.

Utilizza più bucket Cloud Storage

Se si desidera utilizzare un Cloud Storage secchio diversa da quella predefinita di cui sopra, o utilizzare più secchi di cloud storage in una singola applicazione, è possibile creare un'istanza di FirebaseStorage che i riferimenti il secchio 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")

Utilizzo di bucket importati

Durante l'importazione di un secchio di Cloud Storage esistente in Firebase, dovrete concedere Firebase la possibilità di accedere a questi file utilizzando il gsutil strumento, incluso nel Google Cloud SDK :

gsutil -m acl ch -r -u service-<project number>@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://<your-cloud-storage-bucket>

È possibile trovare il numero di progetto come descritto nella premessa ai progetti Firebase .

Ciò non influisce sui bucket appena creati, poiché questi 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 si sta costruendo un'applicazione più complicato con un costume FirebaseApp , è possibile creare un'istanza di FirebaseStorage inizializzato con quella 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