Firebase Extensions are pre-packaged solutions that allow you to do an array of things (no pun intended) that integrate with other Firebase solutions. These include resizing images uploaded to Cloud Storage, shortening urls from Cloud Firestore, and sending an email when a document is added.
These extensions were built in mind to boost productivity of developers and companies. Each extension has been fully built and tested by the Firebase team so we don’t have to spend time and money building these ourselves as Cloud Functions as well as maintaining them.
Firebase Extensions is still in Beta but it’s been around for a few months. The catalog’s grown a little bit from when it was first introduced. It’s not huge by any means, but they’ve given us a strong catalog of important functions that will help many developers and companies boost their productivity.
Among these extensions, here are the top 5 extensions ranked by how widely applicable they can be as well as how much impact they serve.
Before we proceed to the list, let me drop a little disclaimer that this list is entirely my opinion. The significance of an extension is entirely subjective and each person can have their opinions on it. That being said, let’s start counting down.
5. Delete User Data
Function: Deletes all user data in Firestore/Realtime Database when they delete their account (from Firebase Authentication)
Dependencies: App must be managing users with Firebase Authentication and use either Cloud Firestore or Realtime Database to store user data
Associated Charges: Cloud Functions, Cloud Firestore, Realtime Database, Authentication
You don’t want a database that’s full of data from users who no longer exist. Apart from being general clutter in your database, having this added dead space can increase your Firebase bills. Firestore charges $0.18/GiB which may not seem like much but especially if you’re managing a popular app, this can add up heftily.
4. Trigger Email
Function: Send an email when a document is added to Cloud Firestore using data from the added document
Dependencies: App must use Cloud Firestore
Associated Charges: Cloud Functions, Cloud Firestore
Email is a powerful medium for keeping users engaged and when used correctly, can drive your retention up massively. This extension can be used very flexibly based on the requirements of your app.
It can be used to send emails when a user completes an authentication flow (later than the account’s creation point), subscribes to a newsletter, hits a milestone, is nearing cycle times for paid plans, the possibilities are endless.
3. Shorten URLs
Function: Shorten a URL saved in Cloud Firestore using Bitly and save it in a new field within the same document. If the full url is updated, the shortened url will also be updated.
Dependencies: App must save URLs in Cloud Firestore. A Bitly access token must also be provided
Associated Charges: Cloud Functions, Cloud Firestore
URL shortening is a common feature implemented in apps that provide downloads, content publishing, or simply to shorten links used within email newsletters. The wide array of uses of this function and its efficiency in doing so is what gives it thee number 3 spot on this list.
2. Sync with Mailchimp
Function: Adds newly authenticated users to an existing Mailchimp audience
Dependencies: Mailchimp API Key and Audience ID, and app must be managing users with Firebase Authentication
Associated Charges: Cloud Functions, Firebase Authentication
Mailchimp for those who don’t know, is a marketing platform primarily used to send emails and newsletters to users subscribed to it. You can have multiple audiences and manage emails separately for each of them.
Having Email Triggers in Firestore is good and all but you can only do so much within the Firebase ecosystem. By extending to Mailchimp, you have a lot more power and flexibility to give your users the content they want in the form of manually added email campaigns, or automated newsletters sent from RSS feeds (like from a WordPress blog) and other integrated services.
1. Resize Images
Function: Automatically resize images uploading to Cloud Storage and optionally keep the old image
Dependencies: App must be using Cloud Storage and already have a Storage Bucket set up
Associated Charges: Cloud Functions, Cloud Storage
Almost every app has the use of storing images uploaded by users in Cloud Storage and downloading it in client devices. This goes for account profile pictures, image attachments, possibly even standard content systems.
For these apps, being able to quickly download and display these images in a clear resolution is crucial to providing a good user experience. For that, you need an image that is not too small or too large. Too small and your image won’t display clearly. Too large and your image will take much unnecessary time and bandwidth to download.
If you provide your users with the freedom to upload their images, you can be sure that they’ll be uploading images of all sorts of widths and heights that your app’s UI may not agree with.
This Cloud Function makes it so that when your app needs to download these images, the best UX can be provided. And since any sort of image manipulation can be classed as CPU intensive work, having all of this work done on the cloud means that your users’ devices remain unaffected and simply continue to run as smoothly as they can, making you look like an amazing developer while your users stay happy.