Introdução à API Admin Cloud Storage

O Cloud Storage para Firebase armazena seus dados em um bucket do Google Cloud Storage , uma solução de armazenamento de objetos em escala de exabytes com alta disponibilidade e redundância global. O Firebase Admin SDK permite acessar diretamente seus buckets do Cloud Storage em ambientes privilegiados. Em seguida, você pode usar as APIs do Google Cloud Storage para manipular os objetos armazenados nos buckets.

O Admin SDK também permite criar URLs compartilháveis ​​para que os usuários possam fazer download de objetos em seus buckets.

Use um bucket padrão

Você pode especificar um nome de bucket padrão ao inicializar o Admin SDK. Em seguida, você poderá recuperar uma referência autenticada para esse bucket. O nome do bucket não deve conter gs:// ou qualquer outro prefixo de protocolo. Por exemplo, se o URL do bucket exibido no Console do Firebase for gs://bucket-name.appspot.com , passe a string bucket-name.appspot.com para o Admin SDK.

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

Pitão

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.

Ir

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.

Você pode usar as referências de bucket retornadas pelo Admin SDK em conjunto com as bibliotecas de cliente oficiais do Google Cloud Storage para fazer upload, download e modificar o conteúdo nos buckets associados aos seus projetos do Firebase. Observe que você não precisa autenticar as bibliotecas do Google Cloud Storage ao usar o SDK Admin do Firebase. As referências de bucket retornadas pelo Admin SDK já estão autenticadas com as credenciais usadas para inicializar seu aplicativo Firebase.

Use intervalos personalizados

Se quiser usar um bucket do Cloud Storage diferente do padrão fornecido acima ou usar vários buckets do Cloud Storage em um único aplicativo, você poderá recuperar uma referência a um bucket personalizado, conforme mostrado abaixo:

Node.js

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

Java

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

Pitão

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

Ir

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

Use um aplicativo Firebase personalizado

Se você estiver criando um aplicativo mais complicado que interage com vários aplicativos do Firebase , poderá acessar os buckets do Cloud Storage associados a um aplicativo específico do Firebase da seguinte maneira:

Node.js

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

Java

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

Pitão

bucket = storage.bucket(app=custom_app)

Ir

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

Obtenha um URL de download compartilhável

Você pode usar o SDK Admin para gerar um URL de download que não expira para arquivos armazenados em seus buckets. Qualquer pessoa com este URL pode acessar permanentemente o arquivo.

Node.js

const { getStorage, getDownloadURL } = require('firebase-admin/storage');

const fileRef = getStorage().bucket('my-bucket').file('my-file');
const downloadURL= await getDownloadURL(fileRef);

Bibliotecas de cliente do Google Cloud Storage

Os SDKs Admin do Firebase dependem das bibliotecas de cliente do Google Cloud Storage para fornecer acesso ao Cloud Storage. As referências de bucket retornadas pelo Admin SDK são objetos definidos nessas bibliotecas. Consulte a documentação e as referências de API das bibliotecas de cliente do Google Cloud Storage para saber como usar as referências de bucket retornadas em casos de uso como upload e download de arquivos.