Google Storage is not a constructor error

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP



Google Storage is not a constructor error



I am building an App and my objective is every time someone upload an image to firebase storage, the cloud function resize that image.


...
import * as Storage from '@google-cloud/storage'
const gcs = new Storage()
...

exports.resizeImage = functions.storage.object().onFinalize( async object => {
const bucket = gcs.bucket(object.bucket);
const filePath = object.name;
const fileName = filePath.split('/').pop();
const bucketDir = dirname(filePath);
....



And when I tried to deploy this funtion I get this error:


Error: Error occurred while parsing your function triggers.

TypeError: Storage is not a constructor



I tried with "new Storage()" or just "Storage" and nothing works.



I'm newbie around here so if there's anything I forgot for you to debug this just let me know.



Thanks!



google-cloud/storage: 2.0.0



Node js: v8.11.4




1 Answer
1



The API documentation for Cloud Storage suggests that you should use require to load the module:


const Storage = require('@google-cloud/storage');



This applied to versions of Cloud Storage prior to version 2.x.



In 2.x, there was a breaking API change. You need to do this now:


const Storage = require('@google-cloud/storage');



If you would like TypeScript bindings, consider using Cloud Storage via the Firebase Admin SDK. The Admin SDK simply wraps the Cloud Storage module, and also exports type bindings to go along with it. It's easy to use:


import * as admin from 'firebase-admin'
admin.initializeApp()
admin.storage().bucket(...)



admin.storage() gives you a reference to the Storage object that you're trying to work with.


admin.storage()





Work like a charm! Love your tutorials, thanks a lot!
– Domingos Nunes
Sep 6 at 16:19






Incidentally, the 2.x version of @google-cloud/storage requires you to do this now: const Storage = require(...)
– Doug Stevenson
Sep 7 at 20:33


const Storage = require(...)






By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Popular posts from this blog

Firebase Auth - with Email and Password - Check user already registered

Dynamically update html content plain JS

How to determine optimal route across keyboard