The Complete Magazine on Open Source

Power your mobile applications with Firebase

2.2K 1

Google's Firebase

Firebase is a Google mobile platform that helps you quickly develop high quality apps and thereby scale your business. This article covers the range of services it offers to the user.

Firebase started off as a real-time database in 2011 and saw some traction in key applications. The real upswing for the platform came about when Google acquired it in 2014, and since then a significant number of features have been developed for this database. It has now become a complete platform that provides services for development, testing, distribution, analytics and more.

Firebase categorises its services into two areas that help you do the following:

  • Develop and test your application
  • Grow and engage your audience

Multiple services are then provided under each of these areas. You may or may not use all of them but Google has done a good job of explaining the scenarios for which you will need these services. In fact, years of mobile application development experience, coupled with Google engaging with the growing number of mobile users, has resulted in commonly used application development and growth strategies along with the tools that are needed to make a mobile application successful.

Let us look at the two categories of services and see what Firebase has to offer.

Develop and test your application

The key thing, initially, is to develop your mobile application. For this, Firebase provides multiple services and its key module here is the Firebase Realtime Database. This database is fully managed by Google and is akin to a Database-as-a-Service model. It provides SDKs on popular mobile platforms like Android and iOS, and it’s a breeze to integrate the functionality into your application. The Firebase database allows multiple users to update it and also provides synchronisation across multiple users.

Now, let us understand what more we need from a mobile development perspective. Here are some of the requirements, other than the core business functionality that you are going to build into your application:

1) Collaboration across devices

2) Centralised crash reporting in case of mobile application errors

3) Authentication via multiple Auth providers

4) Use of optional cloud storage and long running back-end processes for some of your mobile app’s functionality

5) Test your app on multiple phone models before release

6) Performance monitoring of your app while it is in the field

Each of the above requirements has a matching service that is provided as part of the Firebase platform, and these are covered below.

Firebase Realtime Database: As mentioned earlier, this is a fully managed real-time database that helps in collaboration by sharing the updates across all the devices that use the database. You can integrate the mobile SDKs into your applications and can get notified of database updates via subscriptions, e.g., write a few lines of Android code and you have a real-time collaboration facility in your application.

Crash reporting: Your mobile applications can report errors via Firebase crash reporting APIs that are available on both iOS and Android. The errors can be viewed in a centralised error console and it even categorises the error reports on the basis of the devices, application versions, OS versions and more.

Firebase Performance Monitoring: Mobile users are very particular about an application’s performance and expect it to perform optimally. Firebase Performance Monitoring is a service that helps you track your app’s performance in multiple areas of network, latency, memory consumption, app start-up time and more. The key is to proactively monitor these attributes and react well before your users report the issue to you. The performance monitoring SDKs are available for both Android and iOS.

Firebase Test Lab: Procuring multiple phones to test your application is a challenge. It is almost impossible to keep up to speed with multiple OS versions, devices and other characteristics. Firebase Test Lab is a service that allows you to test out your application on multiple devices and ensure that it works well before its release to a wider audience. It integrates with Android Studio, Web Browser and Continuous Integration tools. The Firebase Test Lab is currently available for Android only.

Firebase cloud functions and storage: Modern applications deal with multiple kinds of data. It is not always structured information and often you might have media formats like files, videos, images, audio and more. This is where Firebase cloud storage comes in, which provides economies of scale and cost, apart from ease of use. There are scenarios in which you might want to test some long running processes or back-end functionality as part of your mobile app but you do not want this to affect the user. Firebase cloud functions allow the user to initiate operations on the app while you can run the functionality in the back-end.

Let’s consider a use case for cloud functions. Say you are developing an imaging mobile app that allows people to upload their pictures. As part of the final image, you might need to generate thumbnails of the images. Instead of doing all this as part of the mobile app and making the user wait, you can simply upload the image into cloud storage. Once the file is uploaded, it can kick off a cloud function that will process the image data and generate multiple thumbnails. All this is done in the background and the user need not wait for it.

Firebase authentication: Mobile apps today need to offer multiple authentication providers so people can use one or more of their online identities for authentication purposes. They might want to use Google, Facebook and other accounts to sign in to your application. Without an easy-to-use SDK that provides simple connectivity to all these authentication providers, it is a challenge to build this into the app. Firebase authentication is the end-to-end identity solution that supports email/password accounts, phone Auth, Google, Twitter, Facebook, GitHub login and more.

Grow and engage your audience

The previous section touched upon the multiple services in Firebase that help you develop and test your application. These services are available both during the development phase and even later, when people are using your mobile application.

To grow and enable your mobile audience, you need multiple features like notifying your users of important events or any subscriptions that they might have in the application. In addition, analytics and advertising is a way that you can potentially understand your audience’s demographics and behaviour in order to release targeted advertisements, which could be a monetisation strategy for you. Some other features include how users can search for your mobile applications, how you can push remote configurations back to the mobile devices and more. The Firebase umbrella provides multiple such services, including bringing within its ambit services like AdMob, Adwords and Google Analytics that have been around for several years.

Firebase has come a long way and has taken centrestage at the last two Google I/Os, the flagship developer conference of the company, with multiple announcements being made. It provides a complete suite of services for your mobile application needs, with SDKs available on popular mobile platforms to help you build, test, measure, distribute and analyse your mobile applications. If it has been a while since you looked at Firebase, it would be worth checking it out now.