Mit Cloud Storage for Firebase können Sie von Nutzern erstellte Inhalte wie Bilder und Videos hochladen und teilen, um Rich-Media-Inhalte in Ihre Apps einzubinden. Ihre Daten werden in einem Google Cloud Storage-Bucket gespeichert, einer Objektspeicherlösung im Exabyte-Maßstab mit Hochverfügbarkeit und globaler Redundanz. Mit Cloud Storage for Firebase können Sie diese Dateien sicher direkt von Mobilgeräten und Webbrowsern hochladen und unzuverlässige Netzwerke problemlos bewältigen.
Hinweis
Falls noch nicht geschehen, sollten Sie den Startleitfaden für Apps für Apple-Plattformen durchgehen. Dazu zählen:
Firebase-Projekt erstellen
Registrieren Sie Ihre Apple-Plattform-App im Projekt und verbinden Sie sie mit Firebase, indem Sie die Firebase-Bibliothek und die Firebase-Konfigurationsdatei (
GoogleService-Info.plist) in Ihre App einfügen.
Achten Sie darauf, dass für Ihr Firebase-Projekt das Blaze-Preismodell (Pay as you go) gilt. Dies ist eine Voraussetzung für die Verwendung von Cloud Storage for Firebase. Wenn Sie neu bei Firebase und Google Cloud sind, prüfen Sie, ob Sie Anspruch auf ein Guthaben von 300 $ für einen kostenlosen Testzeitraum haben.
Standard-Cloud Storage-Bucket erstellen
Rufen Sie in der Firebase-Konsole Datenbanken und Speicher > Speicher auf.
Wenn Ihr Projekt noch nicht auf dem Blaze-Preismodell (Pay as you go) basiert, werden Sie aufgefordert, ein Upgrade für Ihr Projekt durchzuführen.
Klicken Sie auf Jetzt starten.
Wählen Sie einen Standort für den Standard-Bucket aus.
Buckets in
,US-CENTRAL1 undUS-EAST1 können die Always Free-Stufe für Google Cloud Storage nutzen. Für Buckets an allen anderen Standorten gelten die Preise und die Nutzung von Google Cloud Storage.US-WEST1Wenn Sie möchten, können Sie später mehrere Buckets erstellen, die jeweils einen eigenen Standort haben.
Konfigurieren Sie die Firebase Security Rules für Ihren Standard-Bucket. Während der Entwicklung sollten Sie Ihre Regeln für den öffentlichen Zugriff einrichten.
Klicken Sie auf Fertig.
Sie können den Bucket jetzt in der Firebase-Konsole aufrufen. Gehen Sie dazu zum Tab Datenbanken und Speicher > Speicher > Dateien.
Das Format des Standard-Bucket-Namens ist PROJECT_ID.firebasestorage.app
Öffentlichen Zugriff einrichten
Cloud Storage for Firebase bietet eine deklarative Regelsprache, mit der Sie festlegen können, wie Ihre Daten strukturiert und indexiert werden sollen und wann 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 loslegen möchten, ohne Authentication einzurichten, können Sie Ihre Regeln für den öffentlichen Zugriff konfigurieren.
Dadurch wird Cloud Storage für alle zugänglich, auch für Personen, die Ihre App nicht verwenden. Achten Sie also darauf, Cloud Storage wieder einzuschränken, wenn Sie die Authentifizierung einrichten.
Cloud Storage zur App hinzufügen
Verwenden Sie Swift Package Manager, um Firebase-Abhängigkeiten zu installieren und zu verwalten.
- Öffnen Sie Ihr App-Projekt und gehen Sie in Xcode zu File > Add Packages (Datei > Pakete hinzufügen).
- Fügen Sie bei entsprechender Aufforderung das Firebase Apple Platforms SDK-Repository hinzu:
- Wählen Sie die Bibliothek Cloud Storage aus.
- Fügen Sie das Flag
-ObjCim Abschnitt Other Linker Flags (Andere Linker-Flags) der Build-Einstellungen Ihres Ziels hinzu. - Wenn Sie fertig, beginnt Xcode automatisch, Ihre Abhängigkeiten im Hintergrund aufzulösen und herunterzuladen.
https://github.com/firebase/firebase-ios-sdk.git
Cloud Storage in Ihrer App einrichten
Initialisieren Sie Firebase, bevor eine Firebase-Referenz erstellt oder verwendet wird.
Möglicherweise haben Sie dies bereits getan, wenn Sie ein anderes Firebase-Produkt eingerichtet haben. Sie müssen jedoch die
FirebaseStorage-Bibliothek in Ihre Liste der Importe aufnehmen.Importieren Sie das Modul
FirebaseCoreund das ModulFirebaseStoragein IhreUIApplicationDelegate. Wir empfehlen außerdem,FirebaseAuthhinzuzufü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; // ...Konfigurieren Sie in der Methode
application(_:didFinishLaunchingWithOptions:)des App-Delegats eine freigegebeneFirebaseApp-Instanz: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];(Nur SwiftUI) Erstellen Sie ein App-Delegat und hängen Sie es mit
UIApplicationDelegateAdaptoroderNSApplicationDelegateAdaptoran IhreApp-Struktur an. Außerdem müssen Sie 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() } } } }
Rufen Sie mit der Firebase-Standard-App eine Referenz auf den Cloud Storage-Dienst ab.
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.Ersetzen Sie mit dieser heruntergeladenen Konfigurationsdatei die vorhandene Datei
GoogleService-Info.plistim Stammverzeichnis Ihres Xcode-Projekts. Wenn Sie dazu aufgefordert werden, wählen Sie aus, dass die Konfigurationsdatei allen Zielen hinzugefügt werden soll.Achten Sie darauf, dass Sie nur diese zuletzt heruntergeladene Konfigurationsdatei in Ihrer App haben und dass der Dateiname keine zusätzlichen Zeichen wie
(2)enthält.
Rufen Sie mit der Firebase-Standard-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"];
Du kannst Cloud Storage jetzt verwenden.
Nächster Schritt? Cloud Storage-Referenz erstellen
Erweiterte Einrichtung
In einigen Anwendungsfällen ist eine zusätzliche Einrichtung erforderlich:
- Cloud Storage-Buckets in mehreren geografischen Regionen verwenden
- Cloud Storage-Buckets in verschiedenen Speicherklassen verwenden
- Cloud Storage-Buckets mit mehreren authentifizierten Nutzern in derselben App verwenden
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 die Latenz zu reduzieren.
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, in der Nutzer mehrere angemeldete Konten haben können (z. B. ein privates und ein geschäftliches Konto). 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 Anwendung 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 mit dem Tool gsutil, 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://BUCKET_NAME
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 die Standardzugriffssteuerung so festgelegt ist, dass Firebase zugelassen wird. Dies ist eine vorübergehende Maßnahme 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 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
Bereiten Sie die Veröffentlichung Ihrer App vor:
Aktivieren Sie App Check, damit nur Ihre Apps auf Ihre Storage-Buckets zugreifen können.
Richten Sie in der Google Cloud-Konsole Budgetbenachrichtigungen für Ihr Projekt ein.
Im Dashboard „Nutzung und Abrechnung“ in der Firebase-Konsole können Sie sich einen Überblick über die Nutzung Ihres Projekts in mehreren Firebase-Diensten verschaffen. Weitere Informationen zur Nutzung finden Sie auch im Cloud Storage Nutzungs-Dashboard.
Sehen Sie sich die Checkliste für die Einführung von Firebase an.