Introducción a la API de administrador de Cloud Storage

Cloud Storage para Firebase almacena tus datos en Google Cloud Storage, una solución de almacenamiento de objetos en escala de exabytes con alta disponibilidad y redundancia global. El SDK de Firebase Admin te permite acceder directamente a tus depósitos de Google Cloud Storage desde entornos privilegiados. Puedes utilizar las API de Google Cloud Storage para manipular los objetos almacenados en los depósitos.

Cómo usar un depósito predeterminado

Puedes especificar un nombre de depósito predeterminado cuando inicialices el SDK de Admin. Luego, puedes recuperar una referencia autenticada del 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, pasa la string bucket-name.appspot.com al SDK de Admin.

Node.js

var admin = require("firebase-admin");

var serviceAccount = require("path/to/serviceAccountKey.json");

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    storageBucket: "<BUCKET_NAME>.appspot.com"
});

var bucket = admin.storage().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 = new 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.

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': '<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.

Go

import (
	"context"
	"log"

	firebase "firebase.google.com/go"
	"firebase.google.com/go/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.

Puedes utilizar las referencias de depósitos obtenidas del SDK de Admin junto con las bibliotecas cliente oficiales de Google Cloud Storage para subir, descargar y modificar contenido en los depósitos asociados a tus proyectos de Firebase. Ten en cuenta que no necesitas autenticar las bibliotecas de Google Cloud Storage cuando utilizas el SDK de Firebase Admin. Las referencias de depósitos obtenidas del SDK de Admin ya están autenticadas con las credenciales utilizadas para inicializar la app de Firebase.

Cómo usar depósitos personalizados

Si deseas utilizar un depósito de almacenamiento distinto del predeterminado que se describió anteriormente o utilizar varios depósitos de almacenamiento en una sola app, puedes recuperar una referencia de un depósito personalizado como se muestra a continuación:

Node.js

var bucket = admin.storage().bucket("my-custom-bucket");

Java

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

Python

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

Go

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

Utiliza una app de Firebase personalizada

Si estás creando una aplicación más compleja que interactúa con varias apps de Firebase, puedes acceder a los depósitos de almacenamiento asociados con una app de Firebase específica de la siguiente manera:

Node.js

var bucket = customApp.storage().bucket();

Java

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

Python

bucket = storage.bucket(app=custom_app)

Go

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

Bibliotecas cliente de Google Cloud Storage

El SDK de Firebase Admin depende de las bibliotecas cliente de Google Cloud Storage para proporcionar acceso a Cloud Storage. Las referencias de depósitos obtenidas del SDK de Admin son objetos definidos en estas bibliotecas. Consulta la documentación y las referencias de API de las bibliotecas cliente de Google Cloud Storage para aprender cómo utilizar las referencias de depósitos en casos prácticos como la carga y descarga de archivos.

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.