Erste Schritte mit Cloud Storage in Flutter

Mit Cloud Storage for Firebase können Sie von Nutzern erstellte Inhalte wie Bilder und Videos hochladen und teilen. So können Sie Rich-Media-Inhalte in Ihre Apps einbinden. Ihre Daten werden in einem Google Cloud Storage-Bucket gespeichert. Das ist eine 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. Auch bei instabilen Netzwerken ist das kein Problem.

Hinweis

  1. Falls noch nicht geschehen, sollten Sie den Leitfaden für die ersten Schritte mit Flutter-Apps durcharbeiten. Dazu zählen:

    • Firebase-Projekt erstellen

    • Firebase-SDKs für Flutter installieren und initialisieren

  2. Ihr Firebase-Projekt muss den Blaze-Tarif (Pay as you go) verwenden. Wenn Sie Firebase und Google Cloud noch nicht kennen, können Sie prüfen, ob Sie Anspruch auf ein Guthaben von 300$ haben.

Cloud Storage-Standard-Bucket erstellen

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

    Wenn Ihr Projekt noch nicht auf den Blaze-Tarif (Pay as you go) umgestellt ist, werden Sie aufgefordert, es zu upgraden.

  2. Klicken Sie auf Jetzt starten.

  3. Wählen Sie einen Standort 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 Firebase-Konsole auf dem Tab Dateien ansehen.Cloud Storage 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 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 nicht Firebase Authentication einrichten möchten, können Sie Ihre Regeln für den öffentlichen Zugriff konfigurieren.

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

Cloud Storage SDK zu Ihrer App hinzufügen

  1. Führen Sie im Stammverzeichnis Ihres Flutter-Projekts den folgenden Befehl aus, um das Plug-in zu installieren:

    flutter pub add firebase_storage
    
  2. Erstellen Sie Ihre Flutter-Anwendung neu:

    flutter run
    
  3. Importieren Sie das Plug-in in Ihren Dart-Code:

    import 'package:firebase_storage/firebase_storage.dart';
    

Cloud Storage einrichten

  1. Führen Sie flutterfire configure in Ihrem Flutter-Projektverzeichnis aus. Dadurch wird die Firebase-Konfigurationsdatei (firebase_options.dart) in der Codebasis Ihrer App so aktualisiert, dass sie den Namen Ihres Standard-Cloud Storage-Buckets enthält.

  2. Greifen Sie auf Ihren Cloud Storage-Bucket zu, indem Sie eine Instanz von FirebaseStorage erstellen:

    final storage = FirebaseStorage.instance;
    
    // Alternatively, explicitly specify the bucket name URL.
    // final storage = FirebaseStorage.instanceFor(bucket: "gs://<var>BUCKET_NAME</var>");
    

Sie können Cloud Storage jetzt verwenden.

Nächster Schritt? Cloud Storage-Referenz erstellen

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 deren Daten in ihrer 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. Sie können beispielsweise 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 Nutzer-Back-ups 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, 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 oben angegebenen Standard-Bucket verwenden 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:

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

Mit importierten Buckets arbeiten

Wenn Sie einen vorhandenen Cloud Storage-Bucket in Firebase importieren, müssen Sie Firebase mit dem 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://YOUR-CLOUD-STORAGE-BUCKET

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

Dies hat keine Auswirkungen auf neu erstellte Buckets, da für diese standardmäßig die Zugriffssteuerung für Firebase aktiviert ist. Diese Maßnahme ist vorübergehend und wird in Zukunft automatisch durchgeführt.

Benutzerdefinierte Firebase-App verwenden

Wenn Sie eine komplexere App mit einem benutzerdefinierten FirebaseApp erstellen, können Sie eine Instanz von FirebaseStorage erstellen, die mit dieser App initialisiert wird:

// Use a non-default App
final storage = FirebaseStorage.instanceFor(app: customApp);

Nächste Schritte