Cloud Storage for Firebase archivia i tuoi dati in un Google Cloud Storage bucket, una soluzione di archiviazione di oggetti su scala exabyte con elevata affidabilità e ridondanza globale. L'SDK Firebase Admin ti consente di accedere direttamente ai Cloud Storage bucket da ambienti con privilegi. Puoi quindi utilizzare le Google Cloud Storage API per manipolare gli oggetti archiviati nei bucket.
Il Admin SDK ti consente anche di creare URL condivisibili in modo che gli utenti possano scaricare gli oggetti nei bucket.
Inoltre, assicurati che il tuo progetto Firebase sia incluso nel piano tariffario Blaze con pagamento a consumo, un requisito in vigore da ottobre 2024 (consulta le nostre Domande frequenti). Se non hai familiarità con Firebase e Google Cloud, verifica se hai diritto a un credito di 300$.
Utilizzare un bucket predefinito
Puoi specificare un nome del bucket predefinito quando inizializzi l'SDK Admin. Poi puoi recuperare un riferimento autenticato a questo bucket.
Il nome del bucket non deve contenere gs:// o altri prefissi di protocollo.
Ad esempio, se l'URL del bucket visualizzato nella
Firebase console
è gs://PROJECT_ID.firebasestorage.app, passa la stringa
PROJECT_ID.firebasestorage.app all'SDK Admin.
Node.js
const { initializeApp, cert } = require('firebase-admin/app');
const { getStorage } = require('firebase-admin/storage');
const serviceAccount = require('./path/to/serviceAccountKey.json');
initializeApp({
credential: cert(serviceAccount),
storageBucket: '<BUCKET_NAME>.appspot.com'
});
const bucket = getStorage().bucket();
// 'bucket' is an object defined in the @google-cloud/storage library.
// See https://googlecloudplatform.github.io/google-cloud-node/#/docs/storage/latest/storage/bucket
// for more details.
Java
FileInputStream serviceAccount = new FileInputStream("path/to/serviceAccountKey.json");
FirebaseOptions options = FirebaseOptions.builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.setStorageBucket("<BUCKET_NAME>.appspot.com")
.build();
FirebaseApp.initializeApp(options);
Bucket bucket = StorageClient.getInstance().bucket();
// 'bucket' is an object defined in the google-cloud-storage Java library.
// See https://cloud.google.com/java/docs/reference/google-cloud-storage/latest/com.google.cloud.storage.Bucket
// for more details.
Python
import firebase_admin
from firebase_admin import credentials
from firebase_admin import storage
cred = credentials.Certificate('path/to/serviceAccountKey.json')
firebase_admin.initialize_app(cred, {
'storageBucket': 'PROJECT_ID.firebasestorage.app'
})
bucket = storage.bucket()
# 'bucket' is an object defined in the google-cloud-storage Python library.
# See https://googlecloudplatform.github.io/google-cloud-python/latest/storage/buckets.html
# for more details.
Vai
import (
"context"
"log"
firebase "firebase.google.com/go/v4"
"firebase.google.com/go/v4/auth"
"google.golang.org/api/option"
)
config := &firebase.Config{
StorageBucket: "<BUCKET_NAME>.appspot.com",
}
opt := option.WithCredentialsFile("path/to/serviceAccountKey.json")
app, err := firebase.NewApp(context.Background(), config, opt)
if err != nil {
log.Fatalln(err)
}
client, err := app.Storage(context.Background())
if err != nil {
log.Fatalln(err)
}
bucket, err := client.DefaultBucket()
if err != nil {
log.Fatalln(err)
}
// 'bucket' is an object defined in the cloud.google.com/go/storage package.
// See https://godoc.org/cloud.google.com/go/storage#BucketHandle
// for more details.
Puoi utilizzare i riferimenti ai bucket restituiti dall'SDK Admin insieme a quelle ufficiali Google Cloud Storage librerie client per caricare, scaricare e modificare i contenuti nei bucket associati ai tuoi progetti Firebase. Tieni presente che non devi autenticare Google Cloud Storage librerie quando utilizzi l'SDK Firebase Admin. I riferimenti ai bucket restituiti dall'SDK Admin sono già autenticati con le credenziali utilizzate per inizializzare l'app Firebase.
Utilizzare bucket personalizzati
Se vuoi utilizzare un Cloud Storage bucket diverso da quello predefinito descritto in precedenza in questa guida o utilizzare più bucket Cloud Storage in una singola app, puoi recuperare un riferimento a un bucket personalizzato:
Node.js
const bucket = getStorage().bucket('my-custom-bucket');
Java
Bucket bucket = StorageClient.getInstance().bucket("my-custom-bucket");
Python
bucket = storage.bucket('my-custom-bucket')
Vai
bucket, err := client.Bucket("my-custom-bucket")
Utilizzare un'app Firebase personalizzata
Se stai creando un'applicazione più complessa che interagisce con più app Firebase, puoi accedere ai Cloud Storage bucket associati a un'app Firebase specifica nel seguente modo:
Node.js
const bucket = getStorage(customApp).bucket();
Java
Bucket bucket = StorageClient.getInstance(customApp).bucket();
Python
bucket = storage.bucket(app=custom_app)
Vai
otherClient, err := otherApp.Storage(context.Background())
bucket, err := otherClient.Bucket("other-app-bucket")
Ottenere un URL di download condivisibile
Puoi utilizzare Admin SDK per generare un URL di download senza scadenza per file archiviati nei bucket. Chiunque abbia questo URL può accedere al file in modo permanente.
Node.js
const { getStorage, getDownloadURL } = require('firebase-admin/storage');
const fileRef = getStorage().bucket('my-bucket').file('my-file');
const downloadURL= await getDownloadURL(fileRef);
Google Cloud Storage librerie client
Gli SDK Firebase Admin dipendono dalle Google Cloud Storage librerie client per fornire Cloud Storage accesso. I riferimenti ai bucket restituiti dall'SDK Admin sono oggetti definiti in queste librerie. Consulta la documentazione e i riferimenti API delle librerie client Google Cloud Storageper scoprire come utilizzare i riferimenti ai bucket restituiti in casi d'uso come il caricamento e il download di file.