Skip to content

Latest commit

 

History

History
35 lines (21 loc) · 2.43 KB

File metadata and controls

35 lines (21 loc) · 2.43 KB

Automatically Generate Thumbnails

This sample demonstrates how to automatically generate thumbnails for each images that are uploaded to Firebase Storage.

Functions Code

See file functions/index.js for the thumbnail generation code.

The thumbnail generation is performed using ImageMagick which is installed by default on all Cloud Functions instances. This is a CLI so we execute the command from node using the child-process-promise package. The image is first downloaded locally from the Firebase Storage bucket to the tmp folder using the google-cloud SDK.

In order to generate a Signed URL, a Service Account Key is required. A Signed URL grants public read or write access to the URL for a specified limited time.

The dependencies are listed in functions/package.json.

Trigger rules

The function triggers on upload of any file to your Firebase project's default Cloud Storage bucket.

Deploy and test

To deploy and test the sample:

  • Create a Firebase project on the Firebase Console and visit the Storage tab.
  • Clone this repo: git clone https://github.com/firebase/functions-samples.
  • Open this sample's directory: cd functions-samples/generate-thumbnail
  • Setup your project by running firebase use --add and select the project you had created.
  • Install dependencies in the functions directory: cd functions; npm install; cd -
  • Go to the Firebase Console, select the gear image > project settings > Service Accounts and click Generate New Private Key to download a Service Account Key JSON document.
  • Add the JSON service account credentials file to the Functions directory as functions/service-account-credentials.json.
  • Deploy your project using firebase deploy
  • Go to the Firebase Console Storage tab and upload an image. After a short time an thumbnail image with the same name but a thumb_ prefix will be created in the same folder (make sure you refresh the UI to see the new file).
  • Go to the Firebase Console Database tab and see that a child of images has been created contiaining the Signed URLs for both images.