Einführung in die Admin Cloud Storage API

Cloud Storage für Firebase speichert Ihre Daten in einem Google Cloud Storage Eimer - eine Exabyte Maßstab Objektspeicherlösung mit hohen Verfügbarkeit und globaler Redundanz. Mit dem Firebase Admin SDK können Sie aus privilegierten Umgebungen direkt auf Ihre Cloud Storage-Buckets zugreifen. Dann können Sie mit Google Cloud Storage APIs , um die Objekte in den Eimern gelagert zu manipulieren.

Verwenden Sie einen Standard-Bucket

Sie können beim Initialisieren des Admin SDK einen Standard-Bucket-Namen angeben. Anschließend können Sie einen authentifizierten Verweis auf diesen Bucket abrufen. Der Eimer Name darf keine gs:// oder andere Protokoll - Präfixe. Wenn der Eimer - URL in der zum Beispiel angezeigt Firebase Konsole ist gs://bucket-name.appspot.com , übergeben Sie die Zeichenfolge bucket-name.appspot.com an den Admin - SDK.

Node.js

const admin = require('firebase-admin');

const serviceAccount = require('./path/to/serviceAccountKey.json');

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

const 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 = 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 Kübel Referenzen durch das Admin SDK in Verbindung mit den offiziellen zurück verwenden Google Cloud Storage - Client - Bibliotheken laden, herunterladen und ändern Inhalt in den mit Firebase Projekten verbunden Eimer. 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 Anmeldedaten authentifiziert, die zum Initialisieren Ihrer Firebase-App verwendet wurden.

Benutzerdefinierte Buckets verwenden

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 = admin.storage().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 einer benutzerdefinierten Firebase-App

Wenn Sie eine kompliziertere Anwendung bauen , dass interagiert mit mehreren Firebase - Anwendungen , können Sie die Cloud Storage Eimer mit einer bestimmten Firebase App zugeordnet Zugriff wie folgt:

Node.js

const bucket = customApp.storage().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 sind abhängig von den Google Cloud Storage - Client - Bibliotheken Cloud Storage - Zugang. Die vom Admin SDK zurückgegebenen Bucket-Referenzen sind Objekte, die in diesen Bibliotheken definiert sind. Beachten Sie die Dokumentation und API - Referenzen der Google Cloud Storage - Client - Bibliotheken zu erfahren , wie die zurückgegebenen Eimer Referenzen in Fällen Gebrauch verwenden wie Datei - Upload und Download .