Cloud Storage for Firebase stocke vos données dans un bucket Google Cloud Storage, une solution de stockage d'objets à l'échelle de l'exaoctet offrant une haute disponibilité et une redondance mondiale. Le SDK Admin Firebase vous permet d'accéder directement à vos buckets Cloud Storage depuis des environnements privilégiés. Vous pouvez ensuite utiliser les API Google Cloud Storage pour manipuler les objets stockés dans les buckets.
Admin SDK vous permet également de créer des URL partageables pour que les utilisateurs puissent télécharger des objets dans vos buckets.
Assurez-vous que votre projet Firebase est associé au forfait Blaze avec paiement à l'usage, qui est obligatoire pour utiliser Cloud Storage for Firebase. Si vous débutez avec Firebase et Google Cloud, vérifiez si vous êtes éligible à un crédit d'essai sans frais de 300 $.
Utiliser un bucket par défaut
Vous pouvez spécifier un nom de bucket par défaut lorsque vous initialisez le SDK Admin. Vous pouvez ensuite récupérer une référence authentifiée à ce bucket.
Le nom du bucket ne doit pas contenir gs:// ni aucun autre préfixe de protocole.
Par exemple, si l'URL du bucket affichée dans la console Firebase est gs://PROJECT_ID.firebasestorage.app, transmettez la chaîne PROJECT_ID.firebasestorage.app au 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.
Accéder
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.