Firebase Storage/Bucket public upload with node.js

Viewed 8186

Code:

var storage = require('@google-cloud/storage');
var gcs = storage({
    projectId: config.google.projectId,
    keyFilename: config.google.keyFilenameFirebase
});

var bucket = gcs.bucket('project-id.appspot.com');
var destination = 'uploads/12345/full.jpg';

bucket.upload(myFile, { public: true, destination: destination }, function(err, file) {
    if (err) {
        console.log(err);
    }
});

My file is successfully uploaded to my firebase storage, but:

  1. The file is now publicly accessible through the url: https://storage.googleapis.com/project-id.appspot.com/uploads/12345/full.jpg. Can I use this fixed URL in my App or is it likely, that it will change or expire?
  2. public: true seems to break the Firebase Storage UI:

enter image description here The preview of the image on the right side is not showing and I'm unable to download the image via the download button. Also, there is no download url (which I don't mind, cause I can access it via the link above) and when clicking "Create new download URL" Firebase yields

Error generating download URL

When removing public: true the preview is shown correctly and I can also generate a download URL. But the public url https://storage.googleapis.com/project-id.appspot.com/uploads/12345/full.jpg won't work anymore, which is necessary for me.

So my plan is to stick to public: true, but it still bugs me, that the preview/download button is not working and it looks like a bug in Firebase to me. Can anyone confirm that?

2 Answers
Related