Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Introducción a la API de almacenamiento en la nube de administración

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Cloud Storage para Firebase almacena sus datos en un depósito de Google Cloud Storage , una solución de almacenamiento de objetos a escala de exabytes con alta disponibilidad y redundancia global. El SDK de administrador de Firebase le permite acceder directamente a sus depósitos de Cloud Storage desde entornos privilegiados. Luego, puede usar las API de Google Cloud Storage para manipular los objetos almacenados en los depósitos.

Usar un depósito predeterminado

Puede especificar un nombre de depósito predeterminado al inicializar el SDK de administrador. Luego puede recuperar una referencia autenticada a este depósito. El nombre del depósito no debe contener gs:// ni ningún otro prefijo de protocolo. Por ejemplo, si la URL del depósito que se muestra en Firebase console es gs://bucket-name.appspot.com , pase la cadena bucket-name.appspot.com al SDK de administrador.

Nodo.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 http://googlecloudplatform.github.io/google-cloud-java/latest/apidocs/com/google/cloud/storage/Bucket.html
// for more details.

Pitón

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': '<BUCKET_NAME>.appspot.com'
})

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.

Vamos

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.

Puede usar las referencias de depósito que devuelve el SDK de administrador junto con las bibliotecas de cliente oficiales de Google Cloud Storage para cargar, descargar y modificar contenido en los depósitos asociados con sus proyectos de Firebase. Tenga en cuenta que no tiene que autenticar las bibliotecas de Google Cloud Storage cuando usa el SDK de administración de Firebase. Las referencias de depósitos devueltas por el SDK de Admin ya están autenticadas con las credenciales que se usaron para inicializar su aplicación Firebase.

Usar cubos personalizados

Si desea usar un depósito de Cloud Storage que no sea el predeterminado que se proporciona arriba, o usar varios depósitos de Cloud Storage en una sola aplicación, puede recuperar una referencia a un depósito personalizado como se muestra a continuación:

Nodo.js

const bucket = getStorage().bucket('my-custom-bucket');

Java

Bucket bucket = StorageClient.getInstance().bucket("my-custom-bucket");

Pitón

bucket = storage.bucket('my-custom-bucket')

Vamos

 bucket, err := client.Bucket("my-custom-bucket")

Usar una aplicación de Firebase personalizada

Si está creando una aplicación más complicada que interactúa con varias aplicaciones de Firebase , puede acceder a los depósitos de Cloud Storage asociados con una aplicación específica de Firebase de la siguiente manera:

Nodo.js

const bucket = getStorage(customApp).bucket();

Java

Bucket bucket = StorageClient.getInstance(customApp).bucket();

Pitón

bucket = storage.bucket(app=custom_app)

Vamos

otherClient, err := otherApp.Storage(context.Background())
bucket, err := otherClient.Bucket("other-app-bucket")

Bibliotecas cliente de Google Cloud Storage

Los SDK de Firebase Admin dependen de las bibliotecas cliente de Google Cloud Storage para proporcionar acceso a Cloud Storage. Las referencias de depósito devueltas por Admin SDK son objetos definidos en estas bibliotecas. Consulte la documentación y las referencias de la API de las bibliotecas cliente de Google Cloud Storage para obtener información sobre cómo usar las referencias de depósito devueltas en casos prácticos, como la carga y descarga de archivos.