1

J'utilise Cloud Functions pour Firebase dans Node.js où j'exporte un doc excel d'un objet en utilisant excel4node lib, maintenant le problème est que, après wb.write('Excel.xlsx'); je dois en fait enregistrer ce fichier Excel quelque part avant de l'envoyer sur le frontal où l'utilisateur peut le télécharger.Exporter excel avec Cloud Functions pour Firebase plan étincelle (libre) firebase

Ce que j'ai essayé de faire:

  1. Je sais qu'il ya Cloud Storage pour Firebase, mais pour une raison bizarre que seul Google sait et selon ce poste: TypeError: firebase.storage is not a function Firebase stockage n'est pas plus utilisé avec nœud .js. Je lis aussi à propos du stockage Google Cloud, mais uniquement via un service payant.

  2. Il ya un tutoriel ici: https://mashe.hawksey.info/2017/06/cloud-functions-for-firebase-in-google-apps-script/ mais là encore, vous devez avoir un plan payant.

Ma question est: Est-il possible libre de faire cette exportation avec firebase et NodeJS pour que je serai en mesure d'économiser quelque part Excel et sortie exporté à l'extrémité avant de sorte qu'il sera téléchargé à partir l'utilisateur?

Répondre

1

Le lien que vous avez publié à partir du didacticiel au numéro 3 requiert uniquement un plan payant car il effectue une requête HTTP externe. Si vous n'utilisez que le stockage interne, vous pouvez le faire:

const path = require('path'); 
const os = require('os'); 
const fs = require('fs'); 

var bucket = admin.storage().bucket(); 

//cloud functions can only write to the temporary directory 
const tempFilePath = path.join(os.tmpdir(), "Excel.xlsx"); 

//creates and writes the file to the local temporary directory 
//and then retrieves the newly created file for uploading 
wb.write(tempFilePath, function (err, stats) { 
      if (err) { 
       console.error(err); 
      } else { 
       console.log("File written."); 
       fs.readFile(tempFilePath, function (err, data) { 
       if (err) { 
        throw err; 
       } 
       var uploadTask = bucket.upload(tempFilePath, 
       { destination: "excelFileFolder/Excel.xlsx"}); 
// Uploads the excel file to a folder called excelFileFolder in your firebase storage