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
Prima di poter utilizzare Cloud Storage, devi:
Registra il tuo progetto C++ e configuralo in modo che utilizzi Firebase.
Se il tuo progetto C++ utilizza già Firebase, significa che è già registrato e configurato per Firebase.
Aggiungi l'SDK Firebase C++ al tuo progetto C++.
Tieni presente che l'aggiunta di Firebase al progetto C++ comporta attività sia nella console di Firebase sia nel progetto C++ aperto. Ad esempio, puoi scaricare i file di configurazione di Firebase dalla console e poi spostarli nel progetto C++.
Inoltre, assicurati che il tuo progetto Firebase sia associato al piano tariffario Blaze con pagamento in base al 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 Spazio di archiviazione.
Se il tuo progetto non fa ancora parte del piano tariffario Blaze con pagamento a consumo, ti verrà chiesto di eseguire l'upgrade del progetto.
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, ognuno con la propria località.
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 scheda Cloud Storage File
della console Firebase. Il formato predefinito del nome del bucket è
PROJECT_ID.firebasestorage.app
Configurare l'accesso pubblico
Cloud Storage for Firebase offre un linguaggio di regole dichiarative che consente di definire come devono essere strutturati i dati, come devono essere indicizzati e quando i dati 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.
Crea e inizializza firebase::App
Prima di poter accedere a Cloud Storage, devi creare e inizializzare
firebase::App
.
Includi il file di intestazione per firebase::App
:
#include "firebase/app.h"
Android
Crea firebase::App
passando come argomenti l'ambiente JNI e un riferimento jobject
all'attività Java:
app = App::Create(AppOptions(), jni_env, activity);
iOS+
Crea firebase::App
:
app = App::Create(AppOptions());
Accedere al corso firebase::storage::Storage
La classe firebase::storage::Storage
è il punto di contatto per l'SDK C++ Cloud Storage.
Storage* storage = Storage::GetInstance(app);
Puoi iniziare a usare Cloud Storage.
Passaggio successivo? Scopri come creare un riferimento Cloud Storage.
Configurazione avanzata
Esistono alcuni casi d'uso che 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 Cloud Storage bucket con più utenti autenticati nella stessa app
Il primo caso d'uso è perfetto se hai utenti in tutto il mondo e vuoi archiviare i loro dati vicino a loro. Ad esempio, puoi creare bucket negli Stati Uniti, in Europa e in Asia per archiviare i dati degli utenti di quelle 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 per archiviare immagini o altri contenuti a cui si accede di frequente e un bucket Nearline o Coldline in cui vengano archiviati i backup degli utenti o altri contenuti a cui si accede raramente.
In entrambi i 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 su cui hanno eseguito l'accesso (ad esempio un account personale e un account di lavoro). Puoi utilizzare un'istanza di app Firebase personalizzata 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 firebase::storage::Storage
che fa riferimento al tuo bucket personalizzato:
// Get a non-default Cloud Storage bucket Storage* storage = Storage::GetInstance("gs://my-custom-bucket");
Utilizzo dei 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 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 firebase::App
personalizzato, puoi creare un'istanza di firebase::storage::Storage
inizializzata con quell'app:
// Get the default bucket from a custom firebase::App Storage* storage = Storage::GetInstance(customApp); // Get a non-default bucket from a custom firebase::App Storage* storage = Storage::GetInstance(customApp, "gs://my-custom-bucket");
Passaggi successivi
Preparati a lanciare l'app:
- 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 dashboard di Cloud Storage Utilizzo per informazioni più dettagliate sull'utilizzo.
- Esamina l'elenco di controllo per il lancio di Firebase.