Erste Schritte mit Cloud Storage auf Apple-Plattformen

Mit Cloud Storage for Firebase können Sie von Nutzern erstellte Inhalte wie Bilder und Videos hochladen und teilen. So können Sie Ihre Apps mit Rich-Media-Inhalten ausstatten. Ihre Daten werden an einem Google Cloud Storage-Bucket: ein Objektspeicherlösung im Exabyte-Bereich mit Hochverfügbarkeit und globaler Verfügbarkeit 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.

Vorbereitung

  1. Installieren Sie das Firebase SDK.
  2. Fügen Sie die App Ihrem Firebase-Projekt in der Firebase Console hinzu.

Cloud Storage-Standard-Bucket erstellen

  1. Wählen Sie im Navigationsbereich der Firebase-Konsole die Option Speicher aus. Klicken Sie dann auf Jetzt starten.

  2. Lesen Sie die Mitteilungen zum Schutz Ihrer Cloud Storage-Daten mithilfe der Sicherheitsfunktionen Regeln. Während der Entwicklung sollten Sie Regeln für den öffentlichen Zugriff festlegen.

  3. Wählen Sie einen Standort als Standardspeicherort aus. Cloud Storage Bucket.

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

    • Wenn Sie keinen Speicherort auswählen können, verfügt Ihr Projekt bereits über einen standardmäßigen Speicherort für GCP-Ressourcen. Er wurde entweder während der Erstellung des Projekts oder beim Einrichten eines anderen Dienstes festgelegt, für den eine Speicherorteinstellung erforderlich ist.

    Wenn Sie den Blaze-Tarif haben, können Sie mehrere Buckets erstellen, die jeweils einen eigenen Standort haben.

  4. Klicken Sie auf Fertig.

Ö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 sind Lese- und Schreibzugriff auf Cloud Storage ist eingeschränkt, sodass nur authentifizierte Nutzer Lese- oder Schreibrechte haben Daten. 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 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 Bibliothek Cloud Storage aus.
  5. Fügen Sie das Flag -ObjC dem Bereich Other Linker Flags der Build-Einstellungen des Ziels hinzu.
  6. Wenn Sie fertig, beginnt Xcode automatisch, Ihre Abhängigkeiten im Hintergrund aufzulösen und herunterzuladen.

Cloud Storage einrichten

Sie müssen Firebase initialisieren, bevor eine Firebase-Referenz erstellt oder verwendet wird. Wenn Sie dies bereits für eine andere Firebase-Funktion getan haben, können Sie diesen Schritt überspringen für diesen Schritt.

  1. Importieren Sie das FirebaseCore-Modul in Ihre UIApplicationDelegate sowie alle anderen Firebase-Module, die Ihr App-Delegat verwendet. So verwenden Sie beispielsweise Cloud Firestore und Authentication:

    SwiftUI

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Swift

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objective-C

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

    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. Wenn Sie SwiftUI verwenden, müssen Sie einen Anwendungsdelegierten erstellen und über UIApplicationDelegateAdaptor oder NSApplicationDelegateAdaptor an das App-Objekt anhängen. Außerdem müssen Sie das App-Delegate-Swizzling 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()
          }
        }
      }
    }
          
  4. Rufe mit der Standard-Firebase-App eine Referenz auf den Cloud Storage-Dienst ab:

    Swift

    let storage = Storage.storage()
    

    Objective-C

    FIRStorage *storage = [FIRStorage storage];
    

Du kannst Cloud Storage jetzt verwenden.

Sehen wir uns zunächst an, wie Sie ein Cloud Storage-Element erstellen 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 z. B. Buckets in den USA, Europa und Asien, 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. 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 erstellen, Nutzer haben mehrere angemeldete Konten, z. B. ein privates Konto. und einem Arbeitskonto). Sie können eine benutzerdefinierte Firebase-App verwenden. Instanz, um jedes zusätzliche Konto zu authentifizieren.

Mehrere Cloud Storage-Buckets verwenden

Wenn Sie einen anderen Cloud Storage-Bucket als den oben genannten Standard 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 ü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://<your-cloud-storage-bucket>

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

Dies wirkt sich nicht auf neu erstellte Buckets aus, da diese den Standardzugriff haben Steuerelement zum Zulassen von Firebase festgelegt. Diese Maßnahme ist vorübergehend und wird in Zukunft automatisch durchgeführt.

Benutzerdefinierte Firebase-App verwenden

Wenn du eine kompliziertere App mit einer benutzerdefinierten FirebaseApp entwickelst, kannst du Erstellen Sie eine Storage-Instanz, die mit dieser Anwendung initialisiert wurde:

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