Automatically Extract Images Metadata
This sample demonstrates how to automatically extract images metadata that are uploaded to Firebase Storage ImageMagick.
See file functions/index.js for the code.
The image metadata is provided using ImagMagick
identify tool which is installed by default on all Cloud Functions instances. This is a CLI for which we use a NodeJS wrapper. The image is first downloaded locally from the Firebase Storage bucket to the
tmp folder using the google-cloud SDK.
The dependencies are listed in functions/package.json.
The function triggers on upload of any file to your Firebase project default Cloud Storage bucket.
Storage and Database Structure
Users upload an image to Firebase Storage to the path
/<timestamp>/<filename> and in return the Function will write to the
/<timestamp>/<filename> path in the database. The filename typically contains illegal characters for a Firebase Realtime Database keys (such as
.) so we're replacing all these by the
For example the metadata for the file at path
/1477402116302/mypic.jpg will be written to the corresponding Database path
Setting up the sample
This sample comes with a Function and web-based UI for testing the function. To configure it:
- Create a Firebase Project using the Firebase Console.
- Enable the Anonymous sign-in in the Auth section.
- Clone or download this repo and open the
- You must have the Firebase CLI installed. If you don't have it install it with
npm install -g firebase-toolsand then configure it with
- Configure the CLI locally by using
firebase use --addand select your project in the list.
- Install dependencies locally by running:
cd functions; npm install; cd -
Deploy and test
To test the sample:
- Deploy your project using
- Open the app using
firebase open hosting:site, this will open a browser.
- Upload an image using the Web UI.
- You should see the metadata displayed below after a bit.