1

Comment récupérer les liens de téléchargement vers des images stockées dans Firebase via une fonction de cloud?Récupération d'une liaison d'image de stockage Firebase via la fonction Cloud

J'ai essayé toutes sortes de variations, y compris la suivante:

exports.getImgs = functions.https.onRequest((req, res) => { 
    var storage = require('@google-cloud/storage')(); 

var storageRef = storage.ref; 

console.log(storageRef); 

storageRef.child('users/user1/avatar.jpg').getDownloadURL().then(function(url) { 

    }); 
}); 
+1

Copie possible de [Obtenir l'URL de téléchargement du fichier téléchargé avec Cloud Functions for Firebase] (https://stackoverflow.com/questions/42956250/get-download-url-from-file-uploaded-with-cloud-functions- for-firebase) –

Répondre

1

Il m'a ennuyé, alors je vais mettre la solution avec une explication en avant directement à ceux qui sont à sa recherche.

1er, installez GCD stockage en utilisant la ligne de commande firebase:

npm install --save @google-cloud/storage 

code de fonction Cloud:

const gcs = require('@google-cloud/storage')({keyFilename: 'service-account.json'}); 
const bucket = gcs.bucket('name-of-bucket.appspot.com'); 

const file = bucket.file('users/user1/avatar.jpg'); 
     return file.getSignedUrl({ 
      action: 'read', 
      expires: '03-09-2491' 
     }).then(signedUrls => { 
      console.log('signed URL', signedUrls[0]); // this will contain the picture's url 
    }); 

Le nom de votre seau se trouve dans la console Firebase dans la section de stockage.

Le fichier « service account.json » peut être créé et téléchargé à partir d'ici:

https://console.firebase.google.com/project/_/settings/serviceaccounts/adminsdk

et doit être stocké localement dans votre dossier Firebase sous le dossier fonctions. (ou autre tant que changer le chemin dans le code ci-dessus)

C'est tout.

+0

Il peut être judicieux de définir de manière dynamique l'expiration de l'URL pour des raisons de sécurité. – Badrush