Firebase

A brief introduction to Firebase, its features, pricing, drawbacks, comparison of its real-time db with other No-SQL DBs and how we utilize Firebase in our organisation.

Firebase

Firebase is a BaaS (Backend as a Service) platform for building mobile and web applications. It was founded in 2011 by Andrew Lee and James Tamplin as a platform to help developers build web and mobile applications without worrying about infrastructure. Initially, the platform offered a real-time database, authentication, and hosting features. Google then acquired the platform in 2014, which helped its growth and development, with the continued expansion of its range of services. It is a simple and user-friendly platform that doesn’t require complex configuration. 

Some of the features of firebase are

  • Real-time database, 
  • Firestore,
  • Authentication,
  • Cloud storage,
  • Cloud Messaging
  • Cloud Functions, 
  • Crash Reporting,
  • Analytics,
  • Hosting.

Realtime Database: It is a NoSQL cloud-hosted database that allows to store data and sync across multiple clients or devices in real-time.

Firestore: It is an advanced NoSQL cloud-hosted database with real-time synchronization, powerful querying capabilities, and offline support.

Authentication: It provides a simple and secure way to authenticate users with 

  • email and password, 
  • social media logins,
  • custom authentication.

Cloud Storage: It provides scalable and secure cloud storage for files including media files.

Cloud Messaging: It allows sending notifications, data messages, and messages with both notification and data payloads to users on different platforms.

Cloud Functions: It allows developers to write serverless functions in JavaScript that can be triggered by events in your app or other Firebase services.

Hosting: It provides fast and secure static hosting for your web app, with automatic SSL encryption and CDN integration.

Analytics: It provides insights into user interactions with your app, including behavior, demographics, and more.

Crash Reporting: Firebase's Crash Reporting service helps developers identify and fix crashes and errors quickly and easily.

Pricing

Firebase offers a range of pricing options, with a free tier for those getting started with the platform. Paid plans are available for those who require additional storage, bandwidth, or features.

Free tier Real-time database limitations

  • 100 Simultaneous connections
  • 1 GB of storage
  • 10 GB/month of data download
  • No multiple databases per project

Drawbacks

While the platform offers numerous benefits, it does have some drawbacks to consider. 

Limited Querying: The real-time db doesn’t support complex querying like SQL databases. For complex querying, additional data processing is required on the client side. This can be overcome by using Firestore which provides advanced query handling. 

Vendor Lock-In: Locked into using Google’s services. Hard to migrate to another platform which requires a lot of work.

Cost: It can be expensive for Large applications and high-traffic websites. 

Firebase Real-time DB vs other NoSQL DBs

Let’s compare the real-time NoSQL db provided by Firebase with other NoSQL dbs like Amazon DynamoDB, Cassandra, Couchbase, and MongoDB based on the following parameters. 

Data Model: The way data is structured, stored, and accessed 

Real-time Synchronization: The ability to update data across multiple clients in real-time.

Data Scalability: The ability to handle increasing amounts of data 

Data Querying: Process of retrieving the data from db

Hosting & Management: The way the db is made available and managed.

Feature

Firebase Realtime Database

Amazon DynamoDB

Cassandra

Couchbase

MongoDB

Data model

JSON-based NoSQL database

Key-value and document-based NoSQL database

Column-family NoSQL database

Document-based NoSQL database

Document-based NoSQL database

Real-time synchronization

Yes, out of the box

Requires third-party tools or custom code

Requires third-party tools or custom code

Yes, through XDCR

No out of the box support, requires custom implementation

Data scalability

Horizontally scalable

Horizontally scalable

Horizontally scalable

Horizontally scalable

Horizontally scalable

Data querying

Basic querying capabilities, requires additional processing on the client-side

Powerful querying language and indexing options

Powerful querying language

Powerful querying language

Powerful querying language

Hosting and management

Fully managed and hosted by Google

Fully managed service provided by Amazon Web Services

Can be self-hosted or managed through third-party tools

Can be self-hosted or managed through Couchbase Cloud

Can be self-hosted or managed through third-party tools or MongoDB Atlas

How we utilize Firebase 

We utilize Firebase in our organization in the following ways.

Authentication: To authenticate users in one of our applications using email and password.

Notifications: To send notifications to users in our application across multiple platforms 

Firebase Queue: To manage events between micro-services

Maintenance: To manage the application. With the change of a property, the application can be put in maintenance mode. 

Feature Flags: To enable or disable a specific functionality of an application. 

Force refresh App: To force refresh the application for all active users at a time. 

Overview

Firebase is an excellent platform for quickly and easily building high-quality, scalable mobile and web applications. With its range of powerful features and easy-to-use tools, it is a popular choice for many around the world including us. 

Alternative BaaS platforms

If Firebase hasn’t impressed you yet, there are numerous BaaS platforms out there you can check out. Some of them are,

AWS Amplify: Amazon's BaaS platform that offers data storage, user authentication, and more.

Backendless: A BaaS platform that offers data storage, user authentication, and serverless functions.

Kinvey: A BaaS platform that offers data storage, user authentication, and serverless functions, as well as integrations with various third-party services.

Parse: An open-source BaaS platform that offers data storage, user authentication, and serverless functions.