Erste Schritte mit Cloud Storage für Android

Mit Cloud Storage for Firebase können Sie von Nutzern erstellte Inhalte wie Bilder und Videos hochladen und teilen, um Ihre Apps mit Rich-Media-Inhalten zu ergänzen. Ihre Daten werden in einem Google Cloud Storage-Bucket gespeichert, einer Objektspeicherlösung im Exabyte-Maßstab mit hoher Verfü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

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

  2. Achten Sie darauf, dass für Ihr Firebase-Projekt der Blaze-Tarif (Pay as you go) gilt. 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

  1. Wählen Sie im Navigationsbereich der Firebase-Konsole die Option Speicher aus.

    Wenn für Ihr Projekt noch kein Blaze-Tarif (Pay as you go) gilt, werden Sie aufgefordert, ein Upgrade durchzuführen.

  2. Klicken Sie auf Jetzt starten.

  3. Wählen Sie einen Speicherort für den 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 festlegen.

  5. Klicken Sie auf Fertig.

Sie können den Bucket jetzt auf dem Tab Cloud Storage Dateien der Firebase-Konsole aufrufen. 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, indexiert und wann sie 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 Regeln für den öffentlichen Zugriff konfigurieren.

Dadurch ist Cloud Storage für alle Nutzer zugänglich, auch für Nutzer, die Ihre App nicht verwenden. Sie sollten Cloud Storage daher wieder einschränken, wenn Sie die Authentifizierung einrichten.

Cloud Storage SDK in Ihre App einbinden

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 Sie in Ihrer App mehrere Firebase-Bibliotheken verwenden, empfehlen wir Ihnen dringend, die Bibliotheksversionen mithilfe der BoM 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:21.0.1")
}
Sie suchen nach einem Kotlin-spezifischen Bibliotheksmodul? Ab Oktober 2023 (Firebase BoM 32.5.0) können sowohl Kotlin- als auch Java-Entwickler das Hauptbibliotheksmodul verwenden. Weitere Informationen finden Sie in den häufig gestellten Fragen zu dieser Initiative.

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

    1. Holen Sie sich die aktualisierte Konfigurationsdatei.

    2. 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 in Ihrer App nur die zuletzt heruntergeladene Konfigurationsdatei befindet und dass der Dateiname keine zusätzlichen Zeichen wie (2) enthält.

  2. 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:

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. Beispiel: Sie können einen mehrregionalen 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 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 hat keine Auswirkungen auf neu erstellte Buckets, da für diese standardmäßig der Zugriff für Firebase zugelassen 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