Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Einführung in die Admin Cloud Storage-API

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Cloud Storage for Firebase speichert Ihre Daten in einem Google Cloud Storage- Bucket – einer Objektspeicherlösung im Exabyte-Bereich mit hoher Verfügbarkeit und globaler Redundanz. Das Firebase Admin SDK ermöglicht Ihnen den direkten Zugriff auf Ihre Cloud Storage-Buckets aus privilegierten Umgebungen. Anschließend können Sie Google Cloud Storage-APIs verwenden, um die in den Buckets gespeicherten Objekte zu manipulieren.

Verwenden Sie einen Standard-Bucket

Sie können beim Initialisieren des Admin SDK einen Standard-Bucket-Namen angeben. Dann können Sie eine authentifizierte Referenz auf diesen Bucket abrufen. Der Bucket-Name darf kein gs:// oder andere Protokollpräfixe enthalten. Wenn die in der Firebase-Konsole angezeigte Bucket-URL beispielsweise gs://bucket-name.appspot.com , übergeben Sie die Zeichenfolge bucket-name.appspot.com an das 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.

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.

gehen

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.

Sie können die vom Admin SDK zurückgegebenen Bucket-Referenzen in Verbindung mit den offiziellen Google Cloud Storage- Clientbibliotheken verwenden, um Inhalte in den mit Ihren Firebase-Projekten verknüpften Buckets hochzuladen, herunterzuladen und zu ändern. Beachten Sie, dass Sie Google Cloud Storage-Bibliotheken nicht authentifizieren müssen, wenn Sie das Firebase Admin SDK verwenden. Die vom Admin SDK zurückgegebenen Bucket-Referenzen sind bereits mit den Anmeldeinformationen authentifiziert, die zum Initialisieren Ihrer Firebase-App verwendet wurden.

Verwenden Sie benutzerdefinierte Buckets

Wenn Sie einen anderen Cloud Storage-Bucket als den oben angegebenen Standard verwenden oder mehrere Cloud Storage-Buckets in einer einzelnen App verwenden möchten, können Sie wie unten gezeigt einen Verweis auf einen benutzerdefinierten Bucket abrufen:

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')

gehen

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

Verwenden Sie eine benutzerdefinierte Firebase-App

Wenn Sie eine kompliziertere Anwendung erstellen, die mit mehreren Firebase-Apps interagiert , können Sie wie folgt auf die Cloud Storage-Buckets zugreifen, die einer bestimmten Firebase-App zugeordnet sind:

Node.js

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

Java

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

Python

bucket = storage.bucket(app=custom_app)

gehen

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

Google Cloud Storage-Clientbibliotheken

Die Firebase Admin SDKs hängen von den Google Cloud Storage-Clientbibliotheken ab, um Cloud Storage-Zugriff bereitzustellen. Die vom Admin SDK zurückgegebenen Bucket-Referenzen sind in diesen Bibliotheken definierte Objekte. In der Dokumentation und den API-Referenzen der Google Cloud Storage-Clientbibliotheken erfahren Sie, wie Sie die zurückgegebenen Bucket-Referenzen in Anwendungsfällen wie dem Hoch- und Herunterladen von Dateien verwenden.