// Create a child reference// imagesRef now points to "images"finalimagesRef=storageRef.child("images");// Child references can also take paths// spaceRef now points to "images/space.jpg// imagesRef still points to "images"finalspaceRef=storageRef.child("images/space.jpg");
// parent allows us to move our reference to a parent node// imagesRef2 now points to 'images'finalimagesRef2=spaceRef.parent;// root allows us to move all the way back to the top of our bucket// rootRef now points to the rootfinalrootRef=spaceRef.root;
// References can be chained together multiple times// earthRef points to 'images/earth.jpg'finalearthRef=spaceRef.parent?.child("earth.jpg");// nullRef is null, since the parent of root is nullfinalnullRef=spaceRef.root.parent;
// Reference's path is: "images/space.jpg"// This is analogous to a file path on diskspaceRef.fullPath;// Reference's name is the last segment of the full path: "space.jpg"// This is analogous to the file namespaceRef.name;// Reference's bucket is the name of the storage bucket that the files are stored inspaceRef.bucket;
// Points to the root referencefinalstorageRef=FirebaseStorage.instance.ref();// Points to "images"Reference?imagesRef=storageRef.child("images");// Points to "images/space.jpg"// Note that you can use variables to create child valuesfinalfileName="space.jpg";finalspaceRef=imagesRef.child(fileName);// File path is "images/space.jpg"finalpath=spaceRef.fullPath;// File name is "space.jpg"finalname=spaceRef.name;// Points to "images"imagesRef=spaceRef.parent;
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-08-12。"],[],[],null,["# Create a Cloud Storage reference on Flutter\n\n\u003cbr /\u003e\n\nYour files are stored in a\n[Cloud Storage](//cloud.google.com/storage) bucket. The\nfiles in this bucket are presented in a hierarchical structure, just like the\nfile system on your local hard disk, or the data in the Firebase Realtime Database.\nBy creating a reference to a file, your app gains access to it. These references\ncan then be used to upload or download data, get or update metadata or delete\nthe file. A reference can either point to a specific file or to a higher level\nnode in the hierarchy.\n\nIf you've used the [Firebase Realtime Database](/docs/database), these paths should\nseem very familiar to you. However, your file data is stored in\nCloud Storage, **not** in the Realtime Database.\n\nCreate a Reference\n------------------\n\nCreate a reference to upload, download, or delete a file,\nor to get or update its metadata. A reference\ncan be thought of as a pointer to a file in the cloud. References are\nlightweight, so you can create as many as you need. They are also reusable for\nmultiple operations.\n\nCreate a reference using the `FirebaseStorage` singleton instance and\ncalling its `ref()` method. \n\n final storageRef = FirebaseStorage.instance.ref();\n\nNext, you can create a reference to a location lower in the tree,\nsay `\"images/space.jpg\"` by using the `child()` method on an existing reference. \n\n // Create a child reference\n // imagesRef now points to \"images\"\n final imagesRef = storageRef.child(\"images\");\n\n // Child references can also take paths\n // spaceRef now points to \"images/space.jpg\n // imagesRef still points to \"images\"\n final spaceRef = storageRef.child(\"images/space.jpg\");\n\nNavigate with References\n------------------------\n\nYou can also use the `parent` and `root` properties to navigate up in our\nfile hierarchy. `parent` navigates up one level,\nwhile `root` navigates all the way to the top. \n\n // parent allows us to move our reference to a parent node\n // imagesRef2 now points to 'images'\n final imagesRef2 = spaceRef.parent;\n\n // root allows us to move all the way back to the top of our bucket\n // rootRef now points to the root\n final rootRef = spaceRef.root;\n\n`child()`, `parent`, and `root` can be chained together multiple\ntimes, as each is a reference. But accessing `root.parent` results in `null`. \n\n // References can be chained together multiple times\n // earthRef points to 'images/earth.jpg'\n final earthRef = spaceRef.parent?.child(\"earth.jpg\");\n\n // nullRef is null, since the parent of root is null\n final nullRef = spaceRef.root.parent;\n\nReference Properties\n--------------------\n\nYou can inspect references to better understand the files they point to\nusing the `fullPath`, `name`, and `bucket` properties. These properties\nget the file's full path, name and bucket. \n\n // Reference's path is: \"images/space.jpg\"\n // This is analogous to a file path on disk\n spaceRef.fullPath;\n\n // Reference's name is the last segment of the full path: \"space.jpg\"\n // This is analogous to the file name\n spaceRef.name;\n\n // Reference's bucket is the name of the storage bucket that the files are stored in\n spaceRef.bucket;\n\nLimitations on References\n-------------------------\n\nReference paths and names can contain any sequence of valid Unicode characters,\nbut certain restrictions are imposed including:\n\n1. Total length of reference.fullPath must be between 1 and 1024 bytes when UTF-8 encoded.\n2. No Carriage Return or Line Feed characters.\n3. Avoid using `#`, `[`, `]`, `*`, or `?`, as these do not work well with other tools such as the [Firebase Realtime Database](/docs/database/overview) or [gsutil](https://cloud.google.com/storage/docs/gsutil).\n\nFull Example\n------------\n\n // Points to the root reference\n final storageRef = FirebaseStorage.instance.ref();\n\n // Points to \"images\"\n Reference? imagesRef = storageRef.child(\"images\");\n\n // Points to \"images/space.jpg\"\n // Note that you can use variables to create child values\n final fileName = \"space.jpg\";\n final spaceRef = imagesRef.child(fileName);\n\n // File path is \"images/space.jpg\"\n final path = spaceRef.fullPath;\n\n // File name is \"space.jpg\"\n final name = spaceRef.name;\n\n // Points to \"images\"\n imagesRef = spaceRef.parent;\n\nNext, let's learn how to [upload files](/docs/storage/flutter/upload-files) to Cloud Storage."]]