Cloud Functions

Cloud Functions

 Image for post

 

To develop the back-end code for Flutter, we want to separate the code away from our Flutter SDK project folder entirely. Common examples of this back-end code include functions to create a document, delete it and list all available documents. These functions can be stored in the cloud. In this article, I will show you how to write cloud functions on your local machine and deploy them to the cloud.

 

What can I do with Cloud Functions?

Cloud Functions gives developers access to Firebase and Google Cloud events, along with scalable computing power to run code in response to those events. While it's expected that Firebase apps will use Cloud Functions in unique ways to meet their unique requirements, typical use cases might fall into these areas:

Review the use cases and examples for each category that interests you, and then proceed to our Get Started tutorial or to specific how-to guides for authentication events, analytics events, and more. See the eventType API reference for the complete list of supported event types.

Notify users when something interesting happens

Developers can use Cloud Functions to keep users engaged and up to date with relevant information about an app. Consider, for example, an app that allows users to follow one another's activities in the app. Each time a user adds themselves as a follower of another user, a write occurs in the Realtime Database. Then this write event could trigger a function to create Firebase Cloud Messaging (FCM) notifications to let the appropriate users know that they have gained new followers.

  1. The function triggers on writes to the Realtime Database path where followers are stored.
  2. The function composes a message to send via FCM.
  3. FCM sends the notification message to the user's device.

To review working code, see Send FCM notifications.

Other interesting notification use cases

Perform database sanitization and maintenance

With Cloud Functions database event handling, you can modify Realtime Database or Cloud Firestore in response to user behavior, keeping the system up to date and clean. For example, in a chat room app, you could monitor write events and scrub inappropriate or profane text from users' messages. Here's how that could work:

  1. The function's database event handler listens for write events on a specific path, and retrieves event data containing the text of any chat messages.
  2. The function processes the text to detect and scrub any inappropriate language.
  3. The function writes the updated text back to the database.

To review working code, see the Text Moderation sample. This sample sanitizes inappropriate language as well as uppercase "shouting" in chat messages.

Other database sanitization and maintenance use cases

Execute intensive tasks in the cloud instead of in your app

Developers can take advantage of Cloud Functions to offload to the Google cloud resource-intensive work (heavy CPU or networking) that wouldn't be practical to run on a user's device. For instance, you could write a function to listen for image uploads to Storage, download the image to the instance running the function, modify it, and upload it back to Storage. Your modifications could include resizing, cropping, or converting images. ImageMagick command line tools are provided for use with Cloud Functions to make this work easy.

  1. A function triggers when an image file is uploaded to Storage.
  2. The function downloads the image and creates a thumbnail version of it.
  3. The function writes that thumbnail location to the database, so a client app can find and use it.
  4. The function uploads the thumbnail back to Storage in a new location.
  5. The app downloads the thumbnail link.

For a walkthrough of an image processing example, see Handle Storage Events.


 

Comments

Popular posts from this blog

Flutter: Exploring more widgets

Food Delivery App 5 - Firebase Storage for Profile Picture

Flutter: Everything is a widget