Catch up on everthing we announced at this year's Firebase Summit. Learn more

Erste Schritte mit Cloud Storage auf Android

Mit Cloud Storage for Firebase können Sie nutzergenerierte Inhalte wie Bilder und Videos hochladen und teilen, sodass Sie Rich Media-Inhalte in Ihre Apps integrieren können. Ihre Daten werden in einem gespeicherten Google Cloud Storage Eimer - eine Exabyte Maßstab Objektspeicherlösung mit hohen 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 fleckigen Netzwerken umgehen.

Voraussetzungen

Wenn Sie nicht bereits haben, fügen Sie Firebase zu dem Android - Projekt .

Erstellen Sie einen standardmäßigen Cloud Storage-Bucket

  1. Aus dem Navigationsbereich der Firebase Konsole , Speicher auswählen, klicken Sie dann auf Erste Schritte.

  2. Lesen Sie die Nachrichten zum Sichern Ihrer Cloud Storage-Daten mithilfe von Sicherheitsregeln. Während der Entwicklung berücksichtigt Ihre Regeln für den Zugang der Öffentlichkeit einrichten .

  3. Wählen Sie einen Ort für Ihre Standard - Cloud Storage Eimer.

    • Diese Standorteinstellung ist das Projekt Standard - Google Cloud Platform (GCP) Ressource Standort . Beachten Sie, dass dieser Standort für GCP - Dienste in Ihrem Projekt , das eine Standorteinstellung erfordert verwendet werden, insbesondere, Ihre Cloud - Firestore - Datenbank und Ihre App Engine - App (die erforderlich ist , wenn Sie Cloud - Scheduler verwenden).

    • Wenn Sie keinen Standort auswählen können, verfügt Ihr Projekt bereits über 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 auf dem Blaze Plan sind, können Sie mehrere Eimer erstellen , jede mit ihrer eigenen Lage .

  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 indexiert werden sollen und wann Ihre Daten gelesen und in sie 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 loszulegen , ohne Einrichten Authentifizierung , können Sie Ihre Regeln für den Zugang der Öffentlichkeit konfigurieren .

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

Fügen Sie das Cloud Storage SDK zu Ihrer App hinzu

Mit Hilfe der Firebase Android BoM , erklärt die Abhängigkeit für die Cloud Storage Android - Bibliothek in Ihrem Modul (app-Ebene) Gradle Datei ( in der Regel app/build.gradle ).

Java

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:29.0.1')

    // Declare 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 des Firebase Android BoM werden, Ihre App immer kompatible Versionen der Firebase Android - Bibliotheken verwenden.

(Alternative) Deklarieren Firebase Bibliothek Abhängigkeiten , ohne die BoM mit

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

Beachten Sie, dass , wenn Sie mehrere Firebase Bibliotheken in Ihrer Anwendung verwenden wir mit der BoM empfehlen Bibliothek Versionen zu verwalten, die sicherstellt , dass alle Versionen kompatibel sind.

dependencies {
    // Declare 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.0.0'
}

Kotlin+KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:29.0.1')

    // Declare 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 des Firebase Android BoM werden, Ihre App immer kompatible Versionen der Firebase Android - Bibliotheken verwenden.

(Alternative) Deklarieren Firebase Bibliothek Abhängigkeiten , ohne die BoM mit

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

Beachten Sie, dass , wenn Sie mehrere Firebase Bibliotheken in Ihrer Anwendung verwenden wir mit der BoM empfehlen Bibliothek Versionen zu verwalten, die sicherstellt , dass alle Versionen kompatibel sind.

dependencies {
    // Declare 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.0.0'
}

Cloud-Speicher einrichten

Der erste Schritt , um Ihre Cloud Storage Eimer Zugriff ist eine Instanz erstellen FirebaseStorage :

Java

FirebaseStorage storage = FirebaseStorage.getInstance();

Kotlin+KTX

storage = Firebase.storage

Sie sind bereit, Cloud Storage zu verwenden!

Lassen Sie uns zunächst lernen , wie man eine Cloud Storage - Referenz zu erzeugen .

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 über Daten mit unterschiedlichen Zugriffsmustern verfügen. Beispiel: Sie können einen multiregionalen oder regionalen Bucket einrichten, der Bilder oder andere Inhalte, auf die häufig zugegriffen wird, speichert, und einen Nearline- oder Coldline-Bucket, der Benutzer-Backups oder andere Inhalte, auf die selten zugegriffen wird, speichert.

In jedem dieser Anwendungsfälle, werden Sie wollen mehrere Cloud Storage Eimer 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 eine benutzerdefinierte Firebase App verwenden Instanz jedes weitere Konto zu authentifizieren.

Mehrere Cloud Storage-Buckets verwenden

Wenn Sie eine Cloud Storage Eimer andere als Standard verwenden wollen oben vorgesehen ist , oder verwenden Sie mehrere Cloud Storage Eimer in einer einzigen App können Sie eine Instanz erstellen FirebaseStorage , dass Verweise Ihre benutzerdefinierten Eimer:

Java

// Get a non-default Storage bucket
FirebaseStorage storage = FirebaseStorage.getInstance("gs://my-custom-bucket");

Kotlin+KTX

// Get a non-default Storage bucket
val storage = Firebase.storage("gs://my-custom-bucket")

Mit importierten Buckets arbeiten

Wenn eine bestehende Cloud Storage Eimer in Firebase zu importieren, werden Sie Firebase die Möglichkeit zu gewähren , müssen diese Dateien mit dem Zugriff auf gsutil Werkzeug, in der im Lieferumfang enthaltenen Google Cloud SDK :

gsutil -m acl ch -r -u service-<project number>@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://<your-cloud-storage-bucket>

Sie können Ihre Projektnummer finden wie in der beschriebenen Einführung in Firebase Projekte .

Dies hat keine Auswirkungen auf neu erstellte Buckets, da für diese die Standardzugriffssteuerung so eingestellt ist, dass Firebase zugelassen wird. Dies ist eine vorübergehende Maßnahme und wird in Zukunft automatisch durchgeführt.

Verwenden einer benutzerdefinierten Firebase-App

Wenn Sie eine komplizierte Anwendung , um eine benutzerdefinierte Gebäude sind mit FirebaseApp , können Sie eine Instanz erstellen FirebaseStorage mit dieser App initialisiert:

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

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")

Nächste Schritte