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:
public: true
seems to break the Firebase Storage UI: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?
1) It will not expire as long as it is always public. (I added a link related to this at the bottom)
2) Here's the quick fix. (You can do either of the following)
gsutil defacl ch -u [email protected]:OWNER gs://your_bucket;
Then reupload your file....
TL;DR
Here's the reason why, according to the Firebase Documentation:
You can use the Google Cloud Storage APIs to access files uploaded via Firebase SDKs for Cloud Storage, especially to perform more complex operations, such as copying or moving a file, or listing all the files available at a reference.
It's important to note that these requests use Google Cloud Storage ACLs or Project Level IAM, rather than Firebase Authentication and Storage Security Rules.
With regard to the public:true
, I think that it will only enable and create the public link. Refer here
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With