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. Das ist eine Objektspeicherlösung im Exabyte-Bereich mit hoher Verfügbarkeit und globaler Redundanz. Mit Cloud Storage for Firebase können Sie diese Dateien sicher direkt von Mobilgeräten und Webbrowsern hochladen. Auch bei instabilen Netzwerken ist das kein Problem.
Hinweis
Falls noch nicht geschehen, sollten Sie den Leitfaden für die ersten Schritte für Android-Apps durcharbeiten. Dazu zählen:
Firebase-Projekt erstellen
Registrieren Sie Ihre Android-App im Projekt und verbinden Sie sie mit Firebase, indem Sie die Firebase-Abhängigkeiten, das Google-Dienste-Plug-in und die Firebase-Konfigurationsdatei (
google-services.json
) Ihrer App hinzufügen.
Ihr Firebase-Projekt muss den Blaze-Tarif (Pay as you go) verwenden. Wenn Sie Firebase und Google Cloud noch nicht kennen, können Sie prüfen, ob Sie Anspruch auf ein Guthaben von 300$ haben.
Standard-Cloud Storage-Bucket erstellen
Wählen Sie im Navigationsbereich der Firebase-Konsole die Option Speicher aus.
Wenn Ihr Projekt noch nicht auf den Blaze-Tarif (Pay as you go) umgestellt ist, werden Sie aufgefordert, es zu upgraden.
Klicken Sie auf Jetzt starten.
Wählen Sie einen Standort für Ihren Standard-Bucket aus.
Buckets in
,US-CENTRAL1
undUS-EAST1
können das Kontingent „Immer kostenlos“ für Google Cloud Storage nutzen. Für Buckets an allen anderen Standorten gelten die Google Cloud Storage-Preise und ‑Nutzungsbedingungen.US-WEST1
Bei Bedarf können Sie später mehrere Buckets mit jeweils eigenem Standort erstellen.
Konfigurieren Sie die Firebase Security Rules für Ihren Standard-Bucket. Während der Entwicklung sollten Sie Regeln für den öffentlichen Zugriff einrichten.
Klicken Sie auf Fertig.
Sie können den Bucket jetzt in der Firebase-Konsole auf dem Tab Dateien ansehen.Cloud Storage Das Standardformat für Bucket-Namen 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 Authentication nicht einrichten möchten, können Sie Ihre 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. Beschränken Sie Cloud Storage daher wieder, wenn Sie die Authentifizierung einrichten.
Cloud Storage SDK zu Ihrer App hinzufügen
Fügen Sie in der Gradle-Datei Ihres Moduls (auf App-Ebene) (in der Regel<project>/<app-module>/build.gradle.kts
oder <project>/<app-module>/build.gradle
) die Abhängigkeit für die Cloud Storage-Bibliothek für Android hinzu. Wir empfehlen, die Firebase Android BoM zu verwenden, um die Versionsverwaltung der Bibliothek zu steuern.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.0.0")) // Add the dependency for the Cloud Storage library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-storage") }
Mit der Firebase Android BoM haben Sie immer eine kompatible Version der Firebase Android-Bibliotheken in Ihrer App.
(Alternative) Firebase-Bibliotheksabhängigkeiten ohne Verwendung von BoM hinzufügen
Wenn Sie die Firebase BoM nicht verwenden möchten, müssen Sie jede Firebase-Bibliotheksversion in der entsprechenden Abhängigkeitszeile angeben.
Wenn Sie mehrere Firebase-Bibliotheken in Ihrer App verwenden, empfehlen wir dringend, die BoM zum Verwalten von Bibliotheksversionen zu verwenden, um sicherzustellen, dass alle Versionen kompatibel sind.
dependencies { // Add the dependency for the Cloud Storage library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-storage:22.0.0") }
Cloud Storage in Ihrer App einrichten
Achten Sie darauf, dass die Firebase-Konfigurationsdatei (
google-services.json
) in der Codebasis Ihrer App mit dem Namen Ihres Standard-Cloud Storage-Buckets aktualisiert wird.Verwenden Sie diese heruntergeladene Konfigurationsdatei, um die vorhandene Datei
google-services.json
im Modulverzeichnis (auf App-Ebene) Ihrer App zu ersetzen.Achten Sie darauf, dass Sie nur diese zuletzt heruntergeladene Konfigurationsdatei in Ihrer App haben und dass an den Dateinamen keine zusätzlichen Zeichen wie
(2)
angehängt werden.
Greifen Sie auf Ihren Cloud Storage-Bucket zu, indem Sie eine Instanz von
FirebaseStorage
erstellen:Kotlin
storage = Firebase.storage
// Alternatively, explicitly specify the bucket name URL. // val storage = Firebase.storage("gs://BUCKET_NAME")
Java
FirebaseStorage storage = FirebaseStorage.getInstance();
// Alternatively, explicitly specify the bucket name URL. // FirebaseStorage storage = FirebaseStorage.getInstance("gs://BUCKET_NAME");
Du kannst Cloud Storage jetzt verwenden.
Nächster Schritt? Cloud Storage-Referenz erstellen
Erweiterte Einrichtung
Für einige Anwendungsfälle ist eine zusätzliche Einrichtung erforderlich:
- Cloud Storage-Buckets in mehreren geografischen Regionen verwenden
- Cloud Storage-Buckets in verschiedenen Speicherklassen verwenden
- Cloud Storage-Buckets mit mehreren authentifizierten Nutzern in derselben App verwenden
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 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 Nutzerback-ups 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 Konto und ein Arbeitskonto). 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 Standard-Bucket verwenden möchten, der weiter oben in dieser Anleitung beschrieben wird, oder mehrere Cloud Storage-Buckets in einer einzelnen App verwenden möchten, können Sie eine Instanz von FirebaseStorage
erstellen, die auf Ihren benutzerdefinierten Bucket verweist:
Kotlin
// Get a non-default Storage bucket val storage = Firebase.storage("gs://my-custom-bucket")
Java
// Get a non-default Storage bucket FirebaseStorage storage = FirebaseStorage.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
Die Projektnummer finden Sie wie in der Einführung in Firebase-Projekte beschrieben.
Dies hat keine Auswirkungen auf neu erstellte Buckets, da für diese standardmäßig die Zugriffssteuerung für Firebase aktiviert ist. Diese Maßnahme ist vorübergehend und wird in Zukunft automatisch durchgeführt.
Benutzerdefinierte Firebase-App verwenden
Wenn Sie eine komplexere App mit einem benutzerdefinierten FirebaseApp
erstellen, können Sie eine Instanz von FirebaseStorage
erstellen, die mit dieser App initialisiert wird:
Kotlin
// Get the default bucket from a custom FirebaseApp val storage = Firebase.storage(customApp!!) // Get a non-default bucket from a custom FirebaseApp val customStorage = Firebase.storage(customApp, "gs://my-custom-bucket")
Java
// Get the default bucket from a custom FirebaseApp FirebaseStorage storage = FirebaseStorage.getInstance(customApp); // Get a non-default bucket from a custom FirebaseApp FirebaseStorage customStorage = FirebaseStorage.getInstance(customApp, "gs://my-custom-bucket");
Nächste Schritte
So bereiten Sie die Einführung Ihrer App vor:
Aktivieren Sie App Check, damit nur Ihre Apps auf Ihre Speicher-Buckets zugreifen können.
Richten Sie in der Google Cloud Console Budgetbenachrichtigungen für Ihr Projekt ein.
Behalten Sie das Dashboard für Nutzung und Abrechnung in der Firebase-Konsole im Blick, um einen Überblick über die Nutzung Ihres Projekts in mehreren Firebase-Diensten zu erhalten. Weitere Informationen zur Nutzung finden Sie auch im Cloud Storage Dashboard „Nutzung“.
Sehen Sie sich die Firebase-Start-Checkliste an.