How to create a folder in Firebase Storage?

29,192

Solution 1

The Firebase Console does allow you to create a folder, since it's the easiest way to add files to a specific folder there.

But there is no public API to create a folder. Instead folders are auto-created as you add files to them.

Solution 2

The Firebase Storage API dynamically creates "folders" as intermediate products: if you create a file at images/user1234/file.txt, all intermediate "folders" like "images" and "user1234" will be created along the way. So your code becomes:

var uploadTask = storageRef.child('images/user1234/file.txt').put(file, metadata);

Note that you need to include the file name (foo.txt for example) in the child() call, since the reference should include the full path as well as the file name, otherwise your file will be called images.

Solution 3

You most certainly can create directories... with a little bit of playing with the references I did the following.

test = (e,v) => {
    let fileName = "filename"
    let newDirectory = "someDir"
    let storage = firebase.storage().ref(`images/${newDirectory}/${fileName}`)

    let file = e.target.files[0]
    if(file !== undefined && file.type === "image/png" ) {
        storage.put(file)
            .then( d => console.log('you did it'))
            .catch( d => console.log("do something"))
    }
}

enter image description here

Solution 4

String myFolder = "MyImages";
StorageReference riversRef = storageReference.child(myFolder).child("images/pic.jpg");
Share:
29,192
Pier
Author by

Pier

Updated on December 16, 2021

Comments

  • Pier
    Pier over 2 years

    So the new Firebase has support for storage using Google Cloud Platform.

    You can upload a file to the images folder using:

    var uploadTask = storageRef.child('images').put(file, metadata);
    

    What if you want to create a subfolder images/user1234 dynamically using code?

    The offical sample does not show how to do that, nor the official guide or reference docs.

    Is the Firebase Console the only place where folders can be created manually?