Erste Schritte mit Cloud Storage auf Android-Geräten

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

  1. Wenn Sie es noch nicht getan haben, folgen Sie der Anleitung für Android-Apps . Dazu zählen:

    • Ein Firebase-Projekt erstellen

    • Ihre Android-App im Projekt registrieren und mit Firebase verbinden, indem Sie Ihrer App die Firebase-Abhängigkeiten, das Google-Dienste-Plug-in und die Firebase-Konfigurationsdatei (google-services.json) hinzufügen

  2. Achten Sie darauf, dass für Ihr Firebase-Projekt der Blaze-Tarif (Pay as you go) gilt. Das ist seit Oktober 2024 erforderlich (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) gilt, werden Sie aufgefordert, ein Upgrade für Ihr Projekt durchzuführen.

  2. Klicken Sie auf Jetzt starten.

  3. Wählen Sie einen Speicherort 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 der Firebase Konsole sehen. Das Standardformat für den 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 ohne Einrichtung von Authentication beginnen möchten, können Sie Ihre Regeln für den öffentlichen Zugriff konfigurieren.

Dadurch ist Cloud Storage für alle offen, 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.

Cloud Storage SDK 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 Bibliotheksversionierung zu steuern.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:34.11.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 die Firebase BoM nicht verwenden möchten, müssen Sie die Version jeder Firebase-Bibliothek in der entsprechenden Abhängigkeitszeile angeben.

Wenn Sie mehrere Firebase-Bibliotheken in Ihrer App verwenden, empfehlen wir dringend, die BoM zu verwenden, um die Bibliotheksversionen zu verwalten. So wird sichergestellt, 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.1")
}

Cloud Storage in Ihrer App einrichten

  1. 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.

    1. Rufen Sie die aktualisierte Konfigurationsdatei ab..

    2. Ersetzen Sie mit dieser heruntergeladenen Konfigurationsdatei die vorhandene google-services.json Datei im Modulverzeichnis Ihrer App (auf App-Ebene).

      Achten Sie darauf, dass in Ihrer App nur diese neueste heruntergeladene Konfigurationsdatei vorhanden ist und dass dem Dateinamen keine zusätzlichen Zeichen wie (2) angehängt wurden.

  2. 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");

Sie können Cloud Storage jetzt verwenden.

Nächster Schritt? Informationen zum Erstellen einer ReferenzCloud 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. Beispiel: Sie können 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 Standard-Bucket unterscheidet, der weiter 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

// 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 Zugriff auf diese Dateien mit dem gsutil Tool gewähren, das im Google Cloud SDK enthalten ist:

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 FirebaseApp erstellen, können Sie eine Instanz von FirebaseStorage erstellen, die mit dieser App initialisiert wurde:

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