Erste Schritte mit Cloud Storage für C++

Mit Cloud Storage for Firebase können Sie von Nutzern erstellte Inhalte wie Bilder und Videos hochladen und teilen, um Rich-Media-Inhalte in Ihre Apps einzubinden. Ihre Daten werden in einem Google Cloud Storage-Bucket gespeichert, einer Objektspeicherlösung im Exabyte-Maßstab mit Hochverfügbarkeit und globaler Redundanz. Mit Cloud Storage for Firebase können Sie diese Dateien sicher direkt von Mobilgeräten und Webbrowsern hochladen und unzuverlässige Netzwerke problemlos bewältigen.

Hinweis

Bevor Sie Cloud Storage verwenden können, müssen Sie Folgendes tun:

  • Registrieren Sie Ihr C++-Projekt und konfigurieren Sie es für die Verwendung von Firebase.

    Wenn Ihr C++-Projekt bereits Firebase verwendet, ist es bereits für Firebase registriert und konfiguriert.

  • Fügen Sie das Firebase C++ SDK zu Ihrem C++-Projekt hinzu.

Wenn Sie Firebase zu Ihrem C++-Projekt hinzufügen, müssen Sie sowohl in der Firebase Console als auch in Ihrem offenen C++-Projekt Aufgaben ausführen. Sie laden beispielsweise Firebase-Konfigurationsdateien aus der Console herunter und verschieben sie dann in Ihr C++-Projekt.

Achten Sie außerdem darauf, dass für Ihr Firebase-Projekt das Blaze-Preismodell (Pay as you go) gilt. Dies ist eine Voraussetzung für die Verwendung von Cloud Storage for Firebase. Wenn Sie neu bei Firebase und Google Cloud sind, prüfen Sie, ob Sie Anspruch auf ein Guthaben von 300 $ für einen kostenlosen Testzeitraum haben.

Standard-Cloud Storage-Bucket erstellen

  1. Rufen Sie in der Firebase-Konsole Datenbanken und Speicher > Speicher auf.

    Wenn Ihr Projekt noch nicht auf dem Blaze-Preismodell (Pay as you go) basiert, werden Sie aufgefordert, ein Upgrade für Ihr Projekt durchzuführen.

  2. Klicken Sie auf Jetzt starten.

  3. Wählen Sie einen Standort für den Standard-Bucket aus.

  4. Konfigurieren Sie die Firebase Security Rules für Ihren Standard-Bucket. Während der Entwicklung sollten Sie Ihre Regeln für den öffentlichen Zugriff einrichten.

  5. Klicken Sie auf Fertig.

Sie können den Bucket jetzt in der Firebase-Konsole aufrufen. Gehen Sie dazu zum Tab Datenbanken und Speicher > Speicher > Dateien. Das Format des Standard-Bucket-Namens ist PROJECT_ID.firebasestorage.app.

Öffentlichen Zugriff einrichten

Cloud Storage for Firebase bietet eine deklarative Regelsprache, mit der Sie festlegen können, wie Ihre Daten strukturiert und indexiert werden sollen und wann Daten gelesen und geschrieben werden können. Standardmäßig ist der Lese- und Schreibzugriff auf Cloud Storage eingeschränkt, sodass nur authentifizierte Nutzer Daten lesen oder schreiben können. Wenn Sie loslegen möchten, ohne Authentication einzurichten, können Sie Ihre Regeln für den öffentlichen Zugriff konfigurieren.

Dadurch wird Cloud Storage für alle zugänglich, auch für Personen, die Ihre App nicht verwenden. Achten Sie also darauf, Cloud Storage wieder einzuschränken, wenn Sie die Authentifizierung einrichten.

firebase::App erstellen und initialisieren

Bevor Sie auf Cloud Storage zugreifen können, müssen Sie die firebase::App erstellen und initialisieren.

Fügen Sie die Header-Datei für firebase::App ein:

#include "firebase/app.h"

Android

Erstellen Sie die firebase::App und übergeben Sie die JNI-Umgebung und einen jobject-Verweis auf die Java-Aktivität als Argumente:

app = App::Create(AppOptions(), jni_env, activity);

iOS+

Erstellen Sie firebase::App:

app = App::Create(AppOptions());

Auf die Klasse firebase::storage::Storage zugreifen

Die Klasse firebase::storage::Storage ist der Einstiegspunkt für das Cloud Storage C++ SDK.

Storage* storage = Storage::GetInstance(app);

Du kannst Cloud Storage jetzt verwenden.

Nächster Schritt? Cloud Storage-Referenz erstellen

Erweiterte Einrichtung

In einigen Anwendungsfällen ist eine zusätzliche Einrichtung erforderlich:

Der erste Anwendungsfall ist ideal, wenn Sie Nutzer auf der ganzen Welt haben und deren Daten in ihrer Nähe speichern möchten. Sie können beispielsweise Buckets in den USA, Europa und Asien erstellen, um Daten für Nutzer in diesen Regionen zu speichern und die Latenz zu reduzieren.

Der zweite Anwendungsfall ist hilfreich, wenn Sie Daten mit unterschiedlichen Zugriffsmustern haben. Sie können beispielsweise einen multiregionalen oder regionalen Bucket einrichten, in dem Bilder oder andere häufig aufgerufene Inhalte gespeichert werden, und einen Nearline- oder Coldline-Bucket, in dem Nutzersicherungen oder andere selten aufgerufene Inhalte gespeichert werden.

In beiden Anwendungsfällen sollten Sie mehrere Cloud Storage-Buckets verwenden.

Der dritte Anwendungsfall ist nützlich, wenn Sie eine App wie Google Drive entwickeln, in der Nutzer mehrere angemeldete Konten haben können (z. B. ein privates und ein geschäftliches Konto). Sie können eine benutzerdefinierte Firebase-App-Instanz verwenden, um jedes zusätzliche Konto zu authentifizieren.

Mehrere Cloud Storage-Buckets verwenden

Wenn Sie einen anderen Cloud Storage-Bucket als den oben angegebenen Standard-Bucket verwenden oder mehrere Cloud Storage-Buckets in einer einzelnen Anwendung verwenden möchten, können Sie eine Instanz von firebase::storage::Storage erstellen, die auf Ihren benutzerdefinierten Bucket verweist:

// Get a non-default Cloud Storage bucket
Storage* storage = Storage::GetInstance("gs://my-custom-bucket");

Mit importierten Buckets arbeiten

Wenn Sie einen vorhandenen Cloud Storage-Bucket in Firebase importieren, müssen Sie Firebase mit dem Tool gsutil, das im Google Cloud SDK enthalten ist, Zugriff auf diese Dateien gewähren:

gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://BUCKET_NAME

Ihre Projektnummer finden Sie wie in der Einführung in Firebase-Projekte beschrieben.

Dies hat keine Auswirkungen auf neu erstellte Buckets, da für diese die Standardzugriffssteuerung so festgelegt ist, dass Firebase zugelassen wird. Dies ist eine vorübergehende Maßnahme und wird in Zukunft automatisch durchgeführt.

Benutzerdefinierte Firebase-App verwenden

Wenn Sie eine komplexere Anwendung mit einem benutzerdefinierten firebase::App erstellen, können Sie eine Instanz von firebase::storage::Storage erstellen, die mit dieser Anwendung initialisiert wird:

// Get the default bucket from a custom firebase::App
Storage* storage = Storage::GetInstance(customApp);

// Get a non-default bucket from a custom firebase::App
Storage* storage = Storage::GetInstance(customApp, "gs://my-custom-bucket");

Nächste Schritte