Create a Cloud Storage reference on Flutter
Notice
This page is archived and might not reflect the latest version of the FlutterFire plugins. You can find the latest information on firebase.google.com:
https://firebase.google.com/docs/storage/flutter/create-reference
Your files are stored in a Cloud Storage bucket. The files in this bucket are presented in a hierarchical structure, just like the file system on your local hard disk, or the data in the Firebase Realtime Database. By creating a reference to a file, your app gains access to it. These references can then be used to upload or download data, get or update metadata or delete the file. A reference can either point to a specific file or to a higher level node in the hierarchy.
If you've used the Firebase Realtime Database, these paths should seem very familiar to you. However, your file data is stored in Cloud Storage, not in the Realtime Database.
#
Create a ReferenceCreate a reference to upload, download, or delete a file, or to get or update its metadata. A reference can be thought of as a pointer to a file in the cloud. References are lightweight, so you can create as many as you need. They are also reusable for multiple operations.
Create a reference using the FirebaseStorage
singleton instance and
calling its ref()
method.
Next, you can create a reference to a location lower in the tree,
say "images/space.jpg"
by using the child()
method on an existing reference.
#
Navigate with ReferencesYou can also use the parent
and root
properties to navigate up in our
file hierarchy. parent
navigates up one level,
while root
navigates all the way to the top.
child()
, parent
, and root
can be chained together multiple
times, as each is a reference. But accessing root.parent
results in null
.
#
Reference PropertiesYou can inspect references to better understand the files they point to
using the fullPath
, name
, and bucket
properties. These properties
get the file's full path, name and bucket.
#
Limitations on ReferencesReference paths and names can contain any sequence of valid Unicode characters, but certain restrictions are imposed including:
- Total length of reference.fullPath must be between 1 and 1024 bytes when UTF-8 encoded.
- No Carriage Return or Line Feed characters.
- Avoid using
#
,[
,]
,*
, or?
, as these do not work well with other tools such as the Firebase Realtime Database or gsutil.
#
Full ExampleNext, let's learn how to upload files to Cloud Storage.