La nouvelle Firebase prend donc en charge le stockage à l'aide de Google Cloud Platform.
Vous pouvez télécharger un fichier dans le dossier images
en utilisant:
var uploadTask = storageRef.child('images').put(file, metadata);
Que faire si vous voulez créer un sous-dossier images/user1234
de manière dynamique en utilisant du code?
L'offical sample ne montre pas comment faire cela, ni le guide officiel ou la documentation de référence .
La console Firebase est-elle le seul endroit où les dossiers peuvent être créés manuellement ?
La console Firebase vous permet de créer un dossier, car il s’agit du moyen le plus simple d’ajouter des fichiers à un dossier spécifique.
Mais il n'y a pas d'API publique pour créer un dossier. À la place, les dossiers sont créés automatiquement lorsque vous leur ajoutez des fichiers.
L'API de stockage Firebase crée dynamiquement des "dossiers" en tant que produits intermédiaires: si vous créez un fichier avec images/user1234/file.txt
, tous les "dossiers" intermédiaires tels que "images" et "utilisateur1234" seront créés en cours de route. Donc, votre code devient:
var uploadTask = storageRef.child('images/user1234/file.txt').put(file, metadata);
Notez que vous devez inclure le nom du fichier (foo.txt
par exemple) dans l'appel child()
, car la référence doit inclure le chemin d'accès complet ainsi que le nom du fichier, sinon votre fichier s'appellera images
.
Vous pouvez très certainement créer des répertoires ... en jouant un peu avec les références, j'ai fait ce qui suit.
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"))
}
}
String myFolder = "MyImages";
StorageReference riversRef = storageReference.child(myFolder).child("images/pic.jpg");
La console Firebase vous permet de créer un dossier. Je ne pense pas qu'il existe un autre moyen de créer un dossier.