Google is committed to advancing racial equity for Black communities. See how.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Integration in Google Cloud

Cloud Storage für Firebase ist eng in Google Cloud integriert . Die Firebase SDKs für Cloud Storage speichern Dateien direkt in Google Cloud Storage-Buckets. Wenn Ihre App wächst, können Sie problemlos andere Google Cloud-Dienste wie verwaltete Computer wie App Engine oder Cloud-Funktionen oder APIs für maschinelles Lernen wie Cloud Vision oder Google integrieren Übersetzen.

Firebase verwendet Google Cloud-Dienstkonten zum Betreiben und Verwalten von Diensten, ohne Benutzeranmeldeinformationen freizugeben. Wenn Sie ein Firebase-Projekt erstellen, das Cloud Storage verwendet, stellen Sie möglicherweise fest, dass in Ihrem Projekt bereits ein entsprechendes Dienstkonto verfügbar ist: service-<project number>@gcp-sa-firebasestorage.iam.gserviceaccount.com . Weitere Informationen finden Sie in diesem Firebase-Supporthandbuch .

Unter der Haube verwenden Firebase-SDKs für Cloud-Speicher den Standard-Bucket in der kostenlosen Stufe der App Engine . Auf diese Weise können Sie schnell mit Cloud Storage arbeiten, ohne eine Kreditkarte eingeben oder ein Abrechnungskonto aktivieren zu müssen. Außerdem können Sie auf einfache Weise Daten zwischen Firebase und einem Google Cloud-Projekt austauschen.

Für die Integration in Google Cloud, einschließlich des Imports vorhandener Cloud-Speicher-Buckets, ist ein Firebase-Projekt im Blaze-Plan erforderlich. Weitere Informationen zu den Plänen finden Sie auf unserer Preisseite .

Google Cloud Storage

Sie können die Google Cloud Storage-APIs verwenden, um auf Dateien zuzugreifen, die über die Firebase SDKs für Cloud Storage hochgeladen wurden, insbesondere um komplexere Vorgänge auszuführen, z. B. das Kopieren oder Verschieben einer Datei oder das Auflisten aller unter einer Referenz verfügbaren Dateien.

Es ist wichtig zu beachten, dass diese Anforderungen die Zugriffssteuerungsoptionen von Google Cloud Storage anstelle der Firebase-Authentifizierungs- und Cloud Storage-Sicherheitsregeln verwenden.

APIs

Zusätzlich zu den Firebase-SDKs für Cloud-Speicher gibt es eine Reihe weiterer Möglichkeiten, auf Daten zuzugreifen, die in Ihrem Cloud-Speicher-Bucket gespeichert sind, je nachdem, was Sie tun möchten. Wenn Sie auf Daten auf einem Server zugreifen, bieten wir serverseitige Bibliotheken sowie eine JSON und S3-kompatible XML RESTful-API an. Wenn Sie Änderungen an Skripten vornehmen oder andere Verwaltungsaufgaben ausführen müssen, verfügen wir über ein Befehlszeilentool wird sich als nützlich erweisen.

Google Cloud Server SDKs

Google Cloud bietet hochwertige Server-SDKs für eine Reihe von Cloud-Produkten, einschließlich Cloud Storage. Diese Bibliotheken sind in Node.js , Java , go , Python , PHP und Ruby verfügbar.

Weitere Informationen, einschließlich Installationsanweisungen, Authentifizierung und Fehlerbehebung, finden Sie in der oben verlinkten plattformspezifischen Dokumentation.

Die Verwendungsbeispiele für das Google Cloud Storage SDK sind nachstehend aufgeführt:

Node.js

    // Require gcloud
    var gcloud = require('google-cloud');

    // Enable Cloud Storage
    var gcs = gcloud.storage({
      projectId: 'grape-spaceship-123',
      keyFilename: '/path/to/keyfile.json'
    });

    // Reference an existing bucket.
    var bucket = gcs.bucket('my-existing-bucket');

    // Upload a local file to a new file to be created in your bucket.
    bucket.upload('/photos/zoo/zebra.jpg', function(err, file) {
      if (!err) {
        // "zebra.jpg" is now in your bucket.
      }
    });

    // Download a file from your bucket.
    bucket.file('giraffe.jpg').download({
      destination: '/photos/zoo/giraffe.jpg'
    }, function(err) {});
    

Java

    // Enable Cloud Storage
    Storage storage = StorageOptions.builder()
      .authCredentials(AuthCredentials.createForJson(new FileInputStream("/path/to/my/key.json"))
      .build()
      .service();

    // Upload a local file to a new file to be created in your bucket.
    InputStream uploadContent = ...
    BlobId blobId = BlobId.of("my-existing-bucket", "zebra.jpg");
    BlobInfo blobInfo = BlobInfo.builder(blobId).contentType("text/plain").build();
    Blob zebraBlob = storage.create(blobInfo, content);

    // Download a file from your bucket.
    Blob giraffeBlob = storage.get("my-existing-bucket", "giraffe.jpg", null);
    InputStream downloadContent = giraffeBlob.getInputStream();
    

Gehen

    // Enable Cloud Storage
    client, err := storage.NewClient(ctx, option.WithServiceAccountFile("path/to/keyfile.json"))
    if err != nil {
        log.Fatal(err)
    }

    // Download a file from your bucket.
    rc, err := client.Bucket("my-existing-bucket").Object("giraffe.jpg").NewReader(ctx)
    if err != nil {
        log.Fatal(err)
    }
    defer rc.Close()
    body, err := ioutil.ReadAll(rc)
    if err != nil {
        log.Fatal(err)
    }
    

Python

    # Import gcloud
    from google.cloud import storage

    # Enable Cloud Storage
    client = storage.Client()

    # Reference an existing bucket.
    bucket = client.get_bucket('my-existing-bucket')

    # Upload a local file to a new file to be created in your bucket.
    zebraBlob = bucket.get_blob('zebra.jpg')
    zebraBlob.upload_from_filename(filename='/photos/zoo/zebra.jpg')

    # Download a file from your bucket.
    giraffeBlob = bucket.get_blob('giraffe.jpg')
    giraffeBlob.download_as_string()
    

PHP

    // Require gcloud
    require 'vendor/autoload.php';
    use Google\Cloud\Storage\StorageClient;

    // Enable Cloud Storage
    $storage = new StorageClient([
        'projectId' => 'grape-spaceship-123'
    ]);

    // Reference an existing bucket.
    $bucket = $storage->bucket('my-existing-bucket');

    // Upload a file to the bucket.
    $bucket->upload(
        fopen('/photos/zoo/zebra.jpg', 'r')
    );

    // Download a file from your bucket.
    $object = $bucket->object('giraffe.jpg');
    $object->downloadToFile('/photos/zoo/giraffe.jpg');
    

Rubin

    # Require gcloud
    require "google/cloud"

    # Enable Cloud Storage
    gcloud = Google::Cloud.new "grape-spaceship-123", "/path/to/keyfile.json"
    storage = gcloud.storage

    # Reference an existing bucket.
    bucket = storage.bucket "my-existing-bucket"

    # Upload a file to the bucket.
    bucket.create_file "/photos/zoo/zebra.jpg", "zebra.jpg"

    # Download a file from your bucket.
    file = bucket.file "giraffe.jpg"
    file.download "/photos/zoo/#{file.name}"
    

REST-API

Wenn Sie eine Sprache ohne Clientbibliothek verwenden, etwas tun möchten, was die Clientbibliotheken nicht tun, oder nur einen bevorzugten HTTP-Client haben, den Sie bevorzugen, bietet Google Cloud Storage APIs für JSON und XML .

Zusätzlich zu diesen APIs für den Speicherdatenzugriff können Sie zum Verwalten von Cloud-Speicher-Buckets zur Verwendung in Firebase-Projekten die API für Cloud-Speicher für Firebase verwenden .

gsutil

gsutil ist ein Befehlszeilentool, mit dem Sie direkt auf Cloud Storage zugreifen können. Mit gsutil Sie eine Vielzahl von gsutil und Objektverwaltungsaufgaben ausführen, darunter:

  • Hochladen, Herunterladen und Löschen von Objekten.
  • Auflisten von Eimern und Objekten.
  • Objekte verschieben, kopieren und umbenennen.
  • Bearbeiten von Objekt- und Bucket-ACLs.

gsutil ermöglicht andere erweiterte Vorgänge, z. B. das Verschieben von Dateien von einem Verzeichnis in ein anderes oder das Löschen aller Dateien unter einem bestimmten Speicherort.

Das Verschieben aller Dateien von einem Verweis auf einen anderen ist so einfach wie:

gsutil mv gs://bucket/old/reference gs://bucket/new/reference

Das Batch-Löschen aller Dateien unter einer Referenz ist ähnlich intuitiv:

# Delete all files under a path
gsutil rm -r gs://bucket/reference/to/delete

# Delete all the files in a bucket but not the bucket gsutil rm -r gs://bucket/**

# Delete all the files AND the bucket # Removing the default bucket will break the Firebase SDKs for Cloud Storage and is strongly discouraged gsutil rm -r gs://bucket

Objektversionierung

Haben Sie jemals versehentlich etwas gelöscht und kein Backup gehabt? Google Cloud Storage unterstützt die Objektversionierung , mit der Sie Ihre Daten automatisch sichern und aus diesen Sicherungen wiederherstellen können. Sie können die Objektversionierung mit dem Befehl gsutil versioning set gsutil :

gsutil versioning set on gs://<your-cloud-storage-bucket>

Cloud Storage greift immer auf die neueste Version zurück. Wenn Sie also ein Objekt wiederherstellen möchten, müssen Sie eine der anderen oben genannten APIs oder Tools verwenden, um das gewünschte Objekt als das neueste festzulegen.

Object Lifecycle Management

Die Möglichkeit, veraltete Dateien automatisch zu archivieren oder zu löschen, ist für viele Anwendungen eine nützliche Funktion. Glücklicherweise bietet Google Cloud Storage Object Lifecycle Management , mit dem Sie Objekte nach einer bestimmten Zeit löschen oder archivieren können.

Stellen Sie sich eine Foto-Sharing-Anwendung vor, bei der alle Fotos innerhalb eines Tages gelöscht werden sollen. Sie können eine Objektlebenszyklusrichtlinie wie folgt einrichten:

// lifecycle.json
{
  "lifecycle": {
    "rule":
    [
      {
        "action": {"type": "Delete"},
        "condition": {"age": 1}
      }
    ]
  }
}

gsutil es mit dem Befehl gsutil lifecycle set gsutil :

gsutil lifecycle set lifecycle.json gs://<your-cloud-storage-bucket>

Beachten Sie, dass dies für alle Dateien im Bucket gilt. Wenn Sie also wichtige Benutzersicherungen, die Sie lange Zeit speichern möchten, neben Fotos speichern, die Sie täglich löschen möchten, möchten Sie möglicherweise zwei separate Buckets verwenden oder das Löschen manuell durchführen mit gsutil oder Ihrem eigenen Server.

App Engine

App Engine ist eine "Platform as a Service", die die Backend-Logik automatisch als Reaktion auf den empfangenen Datenverkehr skaliert. Laden Sie einfach Ihren Backend-Code hoch und Google verwaltet die Verfügbarkeit Ihrer App. Es gibt keine Server, die Sie bereitstellen oder warten können. App Engine ist eine schnelle und einfache Möglichkeit, Ihrer Firebase-Anwendung zusätzliche Rechenleistung oder vertrauenswürdige Ausführung hinzuzufügen.

Die Firebase-SDKs für Cloud-Speicher verwenden den App Engine-Standardbereich. Wenn Sie also eine App Engine-App erstellen, können Sie mithilfe der integrierten App Engine-APIs Daten zwischen Firebase und App Engine austauschen. Dies ist nützlich für die Durchführung von Audiokodierungen, Videotranscodierungen und Bildtransformationen sowie für andere rechenintensive Hintergrundverarbeitungen.

Die Java-, Python- und go- Standardumgebungen für App Engine enthalten die App Engine-Image-API ( Java , Python , mit der die Größe eines Bilds geändert, gedreht, gespiegelt und zugeschnitten werden kann sowie eine Image-Serving-URL zurückgegeben werden kann, die clientseitige Transformationen ermöglicht , ähnlich wie Cloudinary und Imgix.

Wenn Sie beim Importieren eines vorhandenen Google Cloud-Projekts in Firebase vorhandene App Engine-Objekte in Firebase verfügbar machen möchten, müssen Sie die Standardzugriffssteuerung für Ihre Objekte festlegen, damit Firebase auf sie zugreifen kann, indem Sie den folgenden Befehl mit gsutil ::

gsutil -m acl ch -r -u service-<project number;gt@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://<your-cloud-storage-bucket>

Bekannte Probleme

Es sind zwei Fälle bekannt, in denen Sie Ihre App Engine-App nicht importieren können:

  1. Das Projekt enthält eine frühere App Engine Datastore Master / Slave-App.
  2. Dem Projekt wird eine Projekt-ID mit Domänenpräfix vorangestellt, z. B. domain.com:project-1234 .

In beiden Fällen unterstützt das Projekt Cloud Storage für Firebase nicht. Sie sollten ein neues Firebase-Projekt erstellen, um Cloud Storage verwenden zu können. Wenden Sie sich an den Support, damit wir Ihnen weiterhelfen können.

Google Cloud-Funktionen (Beta)

Google Cloud Functions ist eine einfache, ereignisbasierte, asynchrone Rechenlösung, mit der Sie kleine Einzweckfunktionen erstellen können, die auf Ereignisse reagieren, ohne einen Server oder eine Laufzeitumgebung verwalten zu müssen. Diese Funktionen können zum Transcodieren von Videos, Klassifizieren von Bildern mithilfe von maschinellem Lernen oder zum Synchronisieren von Metadaten mit der Firebase-Echtzeitdatenbank verwendet werden. Mit noch weniger Aufwand als App Engine sind Cloud-Funktionen der schnellste Weg, um auf Änderungen im Cloud-Speicher zu reagieren.

Google Cloud Vision API

Mit der Google Cloud Vision-API können Entwickler den Inhalt eines Bildes verstehen, indem sie leistungsstarke Modelle für maschinelles Lernen in einer benutzerfreundlichen API zusammenfassen. Es klassifiziert Bilder schnell in Tausende von Kategorien, erkennt einzelne Objekte und Gesichter in Bildern, findet und liest gedruckte Wörter in Bildern, identifiziert anstößige Inhalte und bietet sogar eine Analyse der Bildstimmung.

Google Cloud Speech API

Ähnlich wie bei der Vision-API können Entwickler mit der Google Cloud Speech-API Text aus einer im Cloud-Speicher gespeicherten Audiodatei extrahieren. Die API erkennt über 80 Sprachen und Varianten, um Ihre globale Benutzerbasis zu unterstützen. In Kombination mit der Google Cloud Natural Language API können Entwickler sowohl den Rohtext extrahieren als auch auf die Bedeutung dieses Textes schließen. Wenn eine globale Zielgruppe erforderlich ist, koppeln Sie diese mit der Google Übersetzer-API , um den Text in über 90 Sprachen zu übersetzen.