Erste Schritte mit Cloud Storage auf Apple-Plattformen

Cloud Storage for Firebase ermöglicht das Hochladen und Teilen von nutzergenerierten Inhalten wie Bildern und Videos, sodass Sie Ihre Apps mit Rich-Media-Inhalten anreichern können. Ihre Daten werden in einem Google Cloud Storage Bucket gespeichert. Das ist eine Objektspeicherlösung im Exabyte-Bereich mit Hochverfü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 Erste Schritte für Apps auf Apple-Plattformen. Dazu zählen:

    • Ein Firebase-Projekt erstellen

    • Ihre App auf Apple-Plattformen im Projekt registrieren und Ihre App mit Firebase verbinden, indem Sie die Firebase-Bibliothek und Ihre Firebase-Konfigurationsdatei (GoogleService-Info.plist) zu Ihrer App hinzufügen

  2. Achten Sie darauf, dass für Ihr Firebase-Projekt der Blaze-Preismodell (Pay as you go) gilt. Das ist eine Voraussetzung für die Verwendung von Cloud Storage for Firebase. Wenn Sie Firebase und Google Cloud noch nicht kennen, prüfen Sie, ob Sie Anspruch auf ein Startguthaben von 300 $ für die kostenlose Testversion haben.

Standard-Cloud Storage Bucket erstellen

  1. Rufen Sie in der Firebase Konsole Databases & Storage > Storage auf.

    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 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 ansehen. Rufen Sie dazu den Databases & Storage > Storage > Files Tab auf. Das Standardformat für den Namen Ihres Buckets 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 wird Cloud Storage für alle geöffnet, auch für Personen, die Ihre App nicht verwenden. Sie sollten Cloud Storage daher wieder einschränken, wenn Sie die Authentifizierung einrichten.

Cloud Storage zu Ihrer App hinzufügen

Verwenden Sie Swift Package Manager, um Firebase-Abhängigkeiten zu installieren und zu verwalten.

  1. Öffnen Sie Ihr App-Projekt und gehen Sie in Xcode zu File > Add Packages (Datei > Pakete hinzufügen).
  2. Fügen Sie bei entsprechender Aufforderung das Firebase Apple Platforms SDK-Repository hinzu:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Wählen Sie die Cloud Storage Bibliothek aus.
  5. Fügen Sie das Flag -ObjC im Bereich Other Linker Flags (Weitere Verknüpfungsmerker) der Buildeinstellungen Ihres Ziels hinzu.
  6. Wenn Sie fertig, beginnt Xcode automatisch, Ihre Abhängigkeiten im Hintergrund aufzulösen und herunterzuladen.

Cloud Storage in Ihrer App einrichten

  1. Initialisieren Sie Firebase, bevor ein Firebase-Verweis erstellt oder verwendet wird.

    Möglicherweise haben Sie das bereits getan, wenn Sie ein anderes Firebase-Produkt eingerichtet haben. Sie müssen jedoch die Bibliothek FirebaseStorage zu Ihrer Liste der Importe hinzufügen.

    1. Importieren Sie das Modul FirebaseCore und das Modul FirebaseStorage in UIApplicationDelegate. Wir empfehlen außerdem, FirebaseAuth hinzuzufügen.

      SwiftUI

      import SwiftUI
      import FirebaseCore
      import FirebaseStorage
      import FirebaseAuth
      // ...
      

      Swift

      import FirebaseCore
      import FirebaseStorage
      import FirebaseAuth
      // ...
      

      Objective-C

      @import FirebaseCore;
      @import FirebaseStorage;
      @import FirebaseAuth;
      // ...
      
    2. Konfigurieren Sie eine FirebaseApp freigegebene Instanz in der application(_:didFinishLaunchingWithOptions:) Methode Ihres App-Delegaten:

      SwiftUI

      // Use Firebase library to configure APIs
      FirebaseApp.configure()
      

      Swift

      // Use Firebase library to configure APIs
      FirebaseApp.configure()
      

      Objective-C

      // Use Firebase library to configure APIs
      [FIRApp configure];
      
    3. (Nur SwiftUI) Erstellen Sie einen App-Delegaten und fügen Sie ihn mit UIApplicationDelegateAdaptor oder NSApplicationDelegateAdaptor an Ihre App Struktur an. Sie müssen außerdem das Swizzling des App-Delegaten deaktivieren. Weitere Informationen finden Sie in der SwiftUI-Anleitung.

      SwiftUI

      @main
      struct YourApp: App {
        // Register app delegate for Firebase setup
        @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
      
        var body: some Scene {
          WindowGroup {
            NavigationView {
              ContentView()
            }
          }
        }
      }
      
  2. Rufen Sie mit der Standard-Firebase-App einen Verweis auf den Cloud Storage Dienst ab.

    1. Achten Sie darauf, dass die Firebase-Konfigurationsdatei (GoogleService-Info.plist) in der Codebasis Ihrer App mit dem Namen Ihres Standard-Cloud Storage Buckets aktualisiert wird.

      1. Rufen Sie Ihre aktualisierte Konfigurationsdatei ab..

      2. Ersetzen Sie mit dieser heruntergeladenen Konfigurationsdatei die vorhandene Datei replace GoogleService-Info.plist im Stammverzeichnis Ihres Xcode-Projekts. Wählen Sie bei Aufforderung aus, die Konfigurationsdatei allen Zielen hinzuzufügen.

        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. Rufen Sie mit der Standard- Firebase-App einen Verweis auf den Cloud Storage Dienst ab:

      Swift

      let storage = Storage.storage()
      // Alternatively, explicitly specify the bucket name URL.
      storage = Storage.storage(url:"gs://BUCKET_NAME")

      Objective-C

      FIRStorage *storage = [FIRStorage storage];
      // Alternatively, explicitly specify the bucket name URL.
      // FIRStorage storage = [FIRStorage storageWithURL:@"gs://BUCKET_NAME"];

Sie können Cloud Storage jetzt verwenden.

Was ist der nächste Schritt? Informationen zum Erstellen eines VerweisesCloud 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 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 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 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 Cloud Storage Bucket anstelle des oben genannten Standard-Buckets verwenden oder mehrere Cloud Storage Buckets in einer einzelnen App verwenden möchten, können Sie eine Instanz von FIRStorage erstellen, die auf Ihren benutzerdefinierten Bucket verweist:

Swift

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

Objective-C

// Get a non-default Cloud Storage bucket
FIRStorage storage = [FIRStorage storageWithURL:@"gs://my-custom-bucket"];
    

Mit importierten Buckets arbeiten

Wenn Sie einen vorhandenen Cloud Storage Bucket in Firebase importieren, müssen Sie Firebase die Berechtigung erteilen, auf diese Dateien zuzugreifen. Verwenden Sie dazu das gsutil Tool, 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 Storage erstellen, die mit dieser App initialisiert wird:

Swift

// Get the default bucket from a custom FirebaseApp
storage = Storage.storage(app:customApp)

// Get a non-default bucket from a custom FirebaseApp
storage = Storage.storage(app:customApp, url:"gs://my-custom-bucket")
    

Objective-C

// Get the default bucket from a custom FIRApp
FIRStorage storage = [FIRStorage storageForApp:customApp];

// Get a non-default bucket from a custom FIRApp
FIRStorage storage = [FIRStorage storageForApp:customApp withURL:@"gs://my-custom-bucket"];
    

Nächste Schritte