2016-06-06 9 views
8

So hat der neue Firebase Unterstützung für Speicher mit Google Cloud Platform.Wie erstellt man einen Ordner in Firebase Storage?

Sie können eine Datei in den Ordner images laden mit:

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

Was passiert, wenn Sie dynamisch einen Unterordner erstellen möchten images/user1234 Code?

Die offizielle sample zeigt nicht, wie das zu tun, noch die official guide oder reference docs.

Ist die Firebase Console der einzige Ort, an dem Ordner erstellt werden können? manually?

Antwort

8

Mit Firebase Console können Sie einen Ordner erstellen, da dies die einfachste Möglichkeit ist, Dateien zu einem bestimmten Ordner hinzuzufügen.

Aber es gibt keine öffentliche API, um einen Ordner zu erstellen. Stattdessen werden Ordner automatisch erstellt, wenn Sie ihnen Dateien hinzufügen.

15

Die Firebase Storage API erstellt dynamisch "Ordner" als Zwischenprodukte: Wenn Sie eine Datei unter images/user1234/file.txt erstellen, werden alle dazwischen liegenden "Ordner" wie "images" und "user1234" auf dem Weg erstellt. So Ihr Code wird:

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

Beachten Sie, dass Sie benötigen die Dateinamen (foo.txt zum Beispiel) sind in dem child() Aufruf, da die Referenz des vollständigen Pfad sowie die Dateinamen enthalten soll, sonst wird Ihre Datei heißt images.

+0

Können wir einen Ordner in der Speicher Konsole laden? – user142020a

0

Mit der Firebase-Konsole können Sie einen Ordner erstellen. Ich glaube nicht, dass es einen anderen Weg gibt, einen Ordner zu erstellen.

0

Sie können sicherlich Verzeichnisse erstellen ... mit ein wenig Spiel mit den Referenzen habe ich Folgendes getan.

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

+1

Sie wissen, die Antwort ist wirklich die gleiche zwischen Frank, Mike und mir sagte nur verschiedene Wege ... – JustDave

Verwandte Themen