Firebase Storage provides secure file uploads and downloads for your Firebase apps, regardless of network quality. You can use it to store images, audio, video, or other user-generated content. Firebase Storage is backed by Google Cloud Storage, a powerful, simple, and cost-effective object storage service.
Firebase Storage stores your files in a Google Cloud Storage bucket shared with the default Google App Engine app, making them accessible through both Firebase and Google Cloud APIs. This allows you the flexibility to upload and download files from mobile clients via Firebase and do server-side processing such as image filtering or video transcoding using Google Cloud Platform. Firebase Storage scales automatically, meaning that there's no need to migrate from Firebase Storage to Google Cloud Storage or any other provider.
This integration makes files accessible directly from the Google Cloud Storage gcloud client libraries, so you can use Firebase Storage with your favorite server-side languages. For more control, you can also use the Google Cloud Storage XML and JSON APIs.
Firebase Storage integrates seamlessly with Firebase Authentication to identify users, and provides a declarative security language that lets you set access controls on individual files or groups of files, so you can make files as public or private as you want.
See the public docs for Firebase Storage for the most up to date APIs, samples, and example apps.
GoogleServices-Info.plist
in your application.Add the following dependency to your project's Podfile
:
pod 'Firebase/Storage'
Run pod install
and open the created .xcworkspace
file.
Follow these instructions to install Firebase without CocoaPods
You must initialize Firebase before any Firebase app reference is created or used. If you have already done this for another Firebase feature, you can skip the following two steps.
Import the Firebase module:
// Obj-C @import Firebase;
// Swift import Firebase
Configure a FIRApp
shared instance, typically in your application's application:didFinishLaunchingWithOptions:
method:
// Obj-C [FIRApp configure];
// Swift FIRApp.configure()
Get a reference to the storage service, using the default Firebase App:
// Obj-C FIRStorage *storage = [FIRStorage storage];
// Swift let storage = FIRStorage.storage()
Create a reference to a file in Firebase Storage:
// Obj-C FIRStorageReference *reference = [[storage reference] child:@"path/to/file.txt"];
// Swift let reference = storage.reference().child("path/to/file.txt")
Upload a file to Firebase Storage:
// Obj-C NSData *data = ... FIRStorageUploadTask *uploadTask = [riversRef putData:data metadata:nil completion:^(FIRStorageMetadata *metadata, NSError *error) { if (error != nil) { // Uh-oh, an error occurred! } else { // Metadata contains file metadata such as size, content-type, and download URL. NSURL downloadURL = metadata.downloadURL; } }];
// Swift let data: NSData! = ... let uploadTask = riversRef.putData(data, metadata: nil) { metadata, error in if (error != nil) { // Uh-oh, an error occurred! } else { // Metadata contains file metadata such as size, content-type, and download URL. let downloadURL = metadata!.downloadURL } }