了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

Beginnen Sie mit Cloud Storage auf Android

Mit Cloud Storage for Firebase können Sie von Benutzern generierte Inhalte wie Bilder und Videos hochladen und freigeben, wodurch Sie Rich-Media-Inhalte in Ihre Apps integrieren können. Ihre Daten werden in einem Google Cloud Storage- Bucket gespeichert – einer 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 und problemlos mit unregelmäßigen Netzwerken umgehen.

Voraussetzungen

Fügen Sie Ihrem Android-Projekt Firebase hinzu , falls Sie dies noch nicht getan haben .

Erstellen Sie einen standardmäßigen Cloud Storage-Bucket

  1. Wählen Sie im Navigationsbereich der Firebase-Konsole Speicher aus und klicken Sie dann auf Erste Schritte .

  2. Lesen Sie die Mitteilung zum Sichern Ihrer Cloud Storage-Daten mithilfe von Sicherheitsregeln. Erwägen Sie während der Entwicklung, Ihre Regeln für den öffentlichen Zugriff einzurichten .

  3. Wählen Sie einen Speicherort für Ihren standardmäßigen Cloud Storage-Bucket aus.

    • Diese Standorteinstellung ist der standardmäßige Google Cloud Platform (GCP)-Ressourcenstandort Ihres Projekts . Beachten Sie, dass dieser Standort für GCP-Dienste in Ihrem Projekt verwendet wird, die eine Standorteinstellung erfordern, insbesondere Ihre Cloud Firestore- Datenbank und Ihre App Engine -App (was erforderlich ist, wenn Sie Cloud Scheduler verwenden).

    • Wenn Sie keinen Standort auswählen können, hat Ihr Projekt bereits einen standardmäßigen GCP-Ressourcenstandort. Es wurde entweder während der Projekterstellung oder beim Einrichten eines anderen Dienstes festgelegt, der eine Standorteinstellung erfordert.

    Wenn Sie den Blaze-Plan haben, können Sie mehrere Buckets mit jeweils einem eigenen Standort erstellen.

  4. Klicken Sie auf Fertig .

Öffentlichen Zugang einrichten

Cloud Storage for Firebase bietet eine deklarative Regelsprache, mit der Sie definieren können, wie Ihre Daten strukturiert und indiziert 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 Benutzer Daten lesen oder schreiben können. Um zu beginnen, ohne die Authentifizierung einzurichten, können Sie Ihre Regeln für den öffentlichen Zugriff konfigurieren .

Dadurch wird Cloud Storage für jeden zugänglich, auch für Personen, die Ihre App nicht verwenden. Stellen Sie also sicher, dass Sie Ihren Cloud Storage erneut einschränken, wenn Sie die Authentifizierung einrichten.

Fügen Sie Ihrer App das Cloud Storage SDK hinzu

Fügen Sie in Ihrer Modul-Gradle-Datei (auf App-Ebene) (normalerweise <project>/<app-module>/build.gradle ) die Abhängigkeit für die Cloud Storage-Android-Bibliothek hinzu. Wir empfehlen die Verwendung der Firebase Android BoM zur Steuerung der Bibliotheksversionierung.

Kotlin+KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:32.1.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-ktx'
}

Durch die Verwendung der Firebase Android BoM verwendet Ihre App immer kompatible Versionen von Firebase Android-Bibliotheken.

(Alternative) Fügen Sie Firebase-Bibliotheksabhängigkeiten hinzu , ohne die Stückliste zu verwenden

Wenn Sie die Firebase-Stückliste nicht verwenden möchten, müssen Sie jede Firebase-Bibliotheksversion in ihrer Abhängigkeitszeile angeben.

Beachten Sie, dass wir bei Verwendung mehrerer Firebase-Bibliotheken in Ihrer App dringend empfehlen, die BoM zum Verwalten von Bibliotheksversionen zu verwenden, wodurch sichergestellt wird, 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-ktx:20.2.0'
}

Java

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:32.1.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'
}

Durch die Verwendung der Firebase Android BoM verwendet Ihre App immer kompatible Versionen von Firebase Android-Bibliotheken.

(Alternative) Fügen Sie Firebase-Bibliotheksabhängigkeiten hinzu , ohne die Stückliste zu verwenden

Wenn Sie die Firebase-Stückliste nicht verwenden möchten, müssen Sie jede Firebase-Bibliotheksversion in ihrer Abhängigkeitszeile angeben.

Beachten Sie, dass wir bei Verwendung mehrerer Firebase-Bibliotheken in Ihrer App dringend empfehlen, die BoM zum Verwalten von Bibliotheksversionen zu verwenden, wodurch sichergestellt wird, 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:20.2.0'
}

Cloud-Speicher einrichten

Der erste Schritt beim Zugriff auf Ihren Cloud Storage-Bucket besteht darin, eine Instanz von FirebaseStorage zu erstellen:

Kotlin+KTX

storage = Firebase.storage

Java

FirebaseStorage storage = FirebaseStorage.getInstance();

Sie sind bereit, Cloud Storage zu verwenden!

Lassen Sie uns zunächst lernen, wie Sie eine Cloud Storage-Referenz erstellen .

Erweiterte Einrichtung

Es gibt einige Anwendungsfälle, die eine zusätzliche Einrichtung erfordern:

Der erste Anwendungsfall ist perfekt, wenn Sie Benutzer auf der ganzen Welt haben und ihre Daten in ihrer Nähe speichern möchten. Sie können beispielsweise Buckets in den USA, Europa und Asien erstellen, um Daten für Benutzer in diesen Regionen zu speichern, um die Latenz zu reduzieren.

Der zweite Anwendungsfall ist hilfreich, wenn Sie Daten mit unterschiedlichen Zugriffsmustern haben. Zum Beispiel: Sie können einen multiregionalen oder regionalen Bucket einrichten, der Bilder oder andere häufig aufgerufene Inhalte speichert, und einen Nearline- oder Coldline-Bucket, der Benutzer-Backups oder andere selten aufgerufene Inhalte speichert.

In jedem dieser Anwendungsfälle sollten Sie mehrere Cloud Storage-Buckets verwenden .

Der dritte Anwendungsfall ist nützlich, wenn Sie eine App wie Google Drive erstellen, mit der Benutzer mehrere angemeldete Konten haben können (z. B. ein privates Konto und ein Arbeitskonto). Sie können jedes zusätzliche Konto mit einer benutzerdefinierten Firebase-App- Instanz authentifizieren.

Verwenden Sie mehrere Cloud Storage-Buckets

Wenn Sie einen anderen Cloud Storage-Bucket als den oben angegebenen Standard 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");

Arbeiten mit importierten Buckets

Wenn Sie einen vorhandenen Cloud Storage-Bucket in Firebase importieren, müssen Sie Firebase den 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://<your-cloud-storage-bucket>

Sie finden Ihre Projektnummer wie in der Einführung zu Firebase-Projekten beschrieben.

Dies wirkt sich nicht auf neu erstellte Buckets aus, da für diese die Standardzugriffssteuerung so eingestellt ist, dass sie Firebase zulässt. Dies ist eine vorübergehende Maßnahme und wird in Zukunft automatisch durchgeführt.

Verwenden Sie eine benutzerdefinierte Firebase-App

Wenn Sie eine kompliziertere 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