Mit Cloud Storage for Firebase können Sie von Nutzern erstellte Inhalte wie Bilder und Videos hochladen und freigeben und so Rich Media-Inhalte in Ihre Apps einbinden. Ihre Daten werden in einem Google Cloud Storage-Bucket gespeichert – einer Objektspeicherlösung im Exabyte-Bereich mit Hochverfügbarkeit und globaler Redundanz. Mit Cloud Storage for Firebase können Sie diese Dateien direkt von Mobilgeräten und Webbrowsern aus sicher hochladen und problemlos mit schwankenden Verbindungen umgehen.
Hinweis
Lesen Sie sich den Einstiegsleitfaden für Android-Apps durch, falls Sie das noch nicht getan haben. Dazu zählen:
Firebase-Projekt erstellen
Registrieren Sie Ihre Android-App im Projekt und verknüpfen Sie sie mit Firebase, indem Sie die Firebase-Abhängigkeiten, das Google-Dienste-Plug-in und die Firebase-Konfigurationsdatei (
google-services.json
) hinzufügen.
Für Ihr Firebase-Projekt muss das „Pay as you go“-Preismodell „Blaze“ verwendet werden. Wenn Sie Firebase und Google Cloud noch nicht verwenden, prüfen Sie, ob Sie Anspruch auf ein Guthaben in Höhe von 300$ haben.
Standard-Cloud Storage-Bucket erstellen
Wählen Sie im Navigationsbereich der Firebase-Konsole die Option Speicher aus.
Wenn für Ihr Projekt noch kein Blaze-Tarif mit Abrechnung nach Verbrauch gilt, werden Sie aufgefordert, ein Upgrade für Ihr Projekt durchzuführen.
Klicken Sie auf Jetzt starten.
Wählen Sie einen Speicherort für den Standard-Bucket aus.
Für Buckets in
,US-CENTRAL1
undUS-EAST1
kann der Tarif „Immer kostenlos“ für Google Cloud Storage genutzt werden. Für alle anderen Standorte gelten die Google Cloud StoragePreise und Nutzungsbedingungen.US-WEST1
Sie können später mehrere Buckets mit jeweils einem eigenen Standort erstellen.
Konfigurieren Sie die Firebase Security Rules für Ihren Standard-Bucket. Ziehen Sie während der Entwicklung in Betracht, Regeln für den öffentlichen Zugriff einzurichten.
Klicken Sie auf Fertig.
Sie können den Bucket jetzt auf dem Tab Cloud Storage Dateien der Firebase-Konsole aufrufen. 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, wie sie indexiert werden und wann Ihre Daten gelesen und geschrieben werden können. Der Lese- und Schreibzugriff auf Cloud Storage ist standardmäßig eingeschränkt, sodass nur authentifizierte Nutzer Daten lesen oder schreiben können. Wenn Sie Authentication nicht einrichten möchten, können Sie Regeln für den öffentlichen Zugriff konfigurieren.
Dadurch wird Cloud Storage für jeden zugänglich, auch für Personen, die Ihre Anwendung nicht verwenden. Schränken Sie Cloud Storage also noch einmal ein, wenn Sie die Authentifizierung einrichten.
Fügen Sie Ihrer App das Cloud Storage SDK hinzu.
Fügen Sie in der Gradle-Datei des Moduls (auf Anwendungsebene) (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 Versionierung der Bibliothek zu steuern.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.6.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 BoM hinzufügen
Wenn Sie Firebase BoM nicht verwenden, müssen Sie jede Firebase-Bibliotheksversion in der entsprechenden Abhängigkeitszeile angeben.
Wenn du in deiner App mehrere Firebase-Bibliotheken verwendest, empfehlen wir dringend, die BoM zum Verwalten von Bibliotheksversionen zu verwenden. So ist gewährleistet, 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:21.0.1") }
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 ist.Verwenden Sie diese heruntergeladene Konfigurationsdatei, um die vorhandene
google-services.json
-Datei im Modulverzeichnis (auf App-Ebene) Ihrer App zu ersetzen.Achten Sie darauf, dass sich nur die aktuellste heruntergeladene Konfigurationsdatei in Ihrer App befindet und dass an den Dateinamen keine zusätzlichen Zeichen wie
(2)
angehängt werden.
Erstellen Sie eine Instanz von
FirebaseStorage
, um auf Ihren Cloud Storage-Bucket zuzugreifen:Kotlin+KTX
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? Weitere Informationen zum Erstellen einer Cloud Storage-Referenz
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
- Verwendung von Cloud Storage-Buckets mit mehreren authentifizierten Nutzern in derselben App
Der erste Anwendungsfall eignet sich perfekt, wenn Sie Nutzer auf der ganzen Welt haben und ihre Daten in ihrer Nähe speichern möchten. Sie können beispielsweise Speicherorte in den USA, Europa und Asien erstellen, um Daten für Nutzer in diesen Regionen zu speichern und so 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, sowie einen Nearline- oder Coldline-Bucket, in dem Nutzersicherungen oder andere selten aufgerufene Inhalte gespeichert werden.
In beiden Fä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 oben in dieser Anleitung beschrieben wurde, 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+KTX
// 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 über das gsutil
-Tool, 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
Sie finden Ihre Projektnummer wie in der Einführung in Firebase-Projekte beschrieben.
Dies wirkt sich nicht auf neu erstellte Buckets aus, da für diese standardmäßig Firebase als Zugriffssteuerung festgelegt ist. Dies ist eine vorübergehende Maßnahme, die in Zukunft automatisch durchgeführt wird.
Benutzerdefinierte Firebase-App verwenden
Wenn Sie eine komplexere App mit einer benutzerdefinierten FirebaseApp
erstellen, können Sie eine Instanz von FirebaseStorage
erstellen, die mit dieser App initialisiert wird:
Kotlin+KTX
// 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
Einführung Ihrer App vorbereiten:
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.
Überwachen Sie das Dashboard Nutzung und Abrechnung in der Firebase-Konsole, um sich einen Überblick über die Nutzung Ihres Projekts in mehreren Firebase-Diensten zu verschaffen. Ausführlichere Informationen finden Sie im Cloud Storage-Nutzungsdashboard.