Erste Schritte mit Cloud Storage für C++

Cloud Storage for Firebase lets you upload and share user generated content, such as images and video, which allows you to build rich media content into your apps. Ihre Daten werden in einem Google Cloud Storage Bucket gespeichert – einer Objektspeicherlösung im Exabyte-Bereich mit hoher Verfügbarkeit und globaler Redundanz. Cloud Storage for Firebase ermöglicht Ihnen das sichere Hochladen dieser Dateien direkt von Mobilgeräten und Webbrowsern, auch bei instabilen Netzwerken mit Leichtigkeit.

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 registriert und für Firebase konfiguriert.

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

Das Hinzufügen von Firebase zu Ihrem C++-Projekt umfasst Aufgaben in der Firebase Konsole und in Ihrem geöffneten C++-Projekt. Sie laden beispielsweise Firebase-Konfigurationsdateien aus der Konsole herunter und verschieben sie dann in Ihr C++-Projekt.

Außerdem muss für Ihr Firebase-Projekt der Blaze-Tarif (Pay as you go) aktiviert sein. Diese Anforderung gilt seit Oktober 2024 (siehe unsere FAQs). Wenn Sie Firebase und Google Cloud noch nicht kennen, prüfen Sie, ob Sie Anspruch auf ein Guthaben von 300$ haben.

Standard-Cloud Storage Bucket erstellen

  1. Wählen Sie im Navigationsbereich der Firebase Konsole Storage aus.

    Wenn für Ihr Projekt noch nicht der Blaze-Tarif (Pay as you go) aktiviert ist, 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 Ihren Standard-Bucket aus.

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

  5. Klicken Sie auf Fertig.

Sie können den Bucket jetzt in der Cloud Storage Dateien tab Konsole ansehen.Firebase Das Standardformat für den Namen Ihres Buckets ist PROJECT_ID.firebasestorage.app.

Öffentlichen Zugriff einrichten

Cloud Storage for Firebase bietet eine deklarative Regelsprache, mit der Sie definieren können, wie Ihre Daten strukturiert und indexiert werden sollen und wann Ihre 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 mit der Verwendung von Cloud Storage beginnen möchten, ohne Authentication einzurichten, können Sie Regeln für den öffentlichen Zugriff konfigurieren.

Dadurch wird Cloud Storage für alle geöffnet, auch für Personen, die Ihre App nicht verwenden. Sie sollten den Zugriff auf Cloud Storage daher wieder einschrä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 Headerdatei für firebase::App ein:

#include "firebase/app.h"

Android

Erstellen Sie 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 firebase::storage::Storage Klasse ist der Einstiegspunkt für das Cloud Storage C++ SDK.

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

Sie können jetzt Cloud Storage verwenden.

Nächster Schritt? Informationen zum Erstellen eines VerweisesCloud Storage.

Erweiterte Einrichtung

Für einige Anwendungsfälle ist eine zusätzliche Einrichtung erforderlich:

Der erste Anwendungsfall ist ideal, wenn Sie Nutzer auf der ganzen Welt haben und ihre Daten in der 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 so die Latenz zu verringern.

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, mit 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 Cloud Storage Bucket verwenden möchten, der sich vom oben genannten Standard unterscheidet, oder mehrere Cloud Storage Buckets in einer einzelnen App 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 die Berechtigung erteilen, mit dem gsutil Tool auf diese Dateien zuzugreifen. Dieses Tool ist im Google Cloud SDK enthalten:

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 zu Firebase-Projekten beschrieben.

Dies hat keine Auswirkungen auf neu erstellte Buckets, da für diese standardmäßig die Zugriffssteuerung so festgelegt ist, dass Firebase Zugriff hat. Dies ist eine vorübergehende Maßnahme, die in Zukunft automatisch ausgeführt wird.

Benutzerdefinierte Firebase-App verwenden

Wenn Sie eine komplexere App mit einer benutzerdefinierten firebase::App entwickeln, können Sie eine Instanz von firebase::storage::Storage erstellen, die mit dieser App 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