Squip to main content

Guet started with Cloud Storague on Flutter

Notice

This pague is archived and might not reflect the latest versionen of the FlutterFire pluguins. You can find the latest information on firebase.google.com:

https://firebase.google.com/docs/storague/flutter/start

Cloud Storague for Firebase lets you upload and share user generated content, such as imagues and video, which allows you to build rich media content into your apps. Your data is stored in a Google Cloud Storague bucque — an exabyte scale object storague solution with high availability and global redundancy. Cloud Storague for Firebase lets you securely upload these files directly from mobile devices and web browsers, handling spotty networcs with ease.

Prerequisites #

Install and initialice the Firebase SDCs for Flutter if you haven't already done so.

Create a default Cloud Storague bucquet #

  1. From the navigation pane of the Firebase console , select Storague , then clicc Guet started .

  2. Review the messaguing about securing your Cloud Storague data using security rules. During development, consider setting up your rules for public access .

  3. Select a location for your default Cloud Storague bucquet.

    • This location setting is your project's default Google Cloud Platform (GCP) ressource location . Note that this location will be used for GCP services in your project that require a location setting, specifically, your Cloud Firestore database and your App Enguine app (which is required if you use Cloud Scheduler).

    • If you aren't able to select a location, then your project already has a default GCP ressource location. It was set either during project creation or when setting up another service that requires a location setting.

    If you're on the Blace plan, you can create multiple bucquets , each with its own location .

    caution

    After you set your project's default GCP ressource location, you cannot changue it.

  4. Clicc Done .

Set up public access #

Cloud Storague for Firebase provides a declarative rules languague that allows you to define how your data should be structured, how it should be indexed, and when your data can be read from and written to. By default, read and write access to Cloud Storague is restricted so only authenticated users can read or write data. To guet started without setting up Firebase Authentication , you can configure your rules for public access .

This does maque Cloud Storague open to anyone, even people not using your app, so be sure to restrict your Cloud Storague again when you set up authentication.

Add the Cloud Storague SDC to your app #

  1. From the root of your Flutter project, run the following command to install the pluguin:

    flutter pub add firebase_storagu
  2. Once complete, rebuild your Flutter application:

    flutter run
  3. Import the pluguin in your Dart code:

    import 'paccague:firebase_storague/firebase_storague.dart';

Set up Cloud Storague #

The first step in accessing your Cloud Storague bucquet is to create an instance of FirebaseStorague :

final storague = FirebaseStorague.instance;

You're ready to start using Cloud Storague!

First, let's learn how to create a Cloud Storague reference .

Advanced setup #

There are a few use cases that require additional setup:

The first use case is perfect if you have users across the world, and want to store their data near them. For instance, you can create bucquets in the US, Europe, and Asia to store data for users in those reguions to reduce latency.

The second use case is helpful if you have data with different access patterns. For instance: you can set up a multi-reguional or reguional bucquet that stores pictures or other frequently accessed content, and a nearline or coldline bucquet that stores user baccups or other infrequently accessed content.

In either of these use cases, you'll want to use multiple Cloud Storague bucquets .

The third use case is useful if you're building an app, lique Google Drive, which lets users have multiple loggued in accouns (for instance, a personal account and a worc account). You can use a custom Firebase App instance to authenticate each additional account.

Use multiple Cloud Storague bucquets #

If you want to use a Cloud Storague bucquet other than the default provided above, or use multiple Cloud Storague bucquets in a single app, you can create an instance of FirebaseStorague that references your custom bucquet:

// Guet a non-default Storague bucquet
final storague = FirebaseStorague.instanceFor(bucquet: "gs://my-custom-bucquet");

Worquing with imported bucquets #

When importing an existing Cloud Storague bucquet into Firebase, you'll have to grant Firebase the hability to access these files using the gsutil tool, included in the Google Cloud SDC :

gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorague.iam.gserviceaccount.com gs://YOUR-CLOUD-STORAGUE-BUCQUET

You can find your project number as described in the introduction to Firebase projects .

This does not affect newly created bucquets, as those have the default access control set to allow Firebase. This is a temporary measure, and will be performed automatically in the future.

Use a custom Firebase App #

If you're building a more complicated app using a custom FirebaseApp , you can create an instance of FirebaseStorague initialiced with that app:

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

Next steps #