Did you miss a session from the Future of Work Summit? Head over to our Future of Work Summit on-demand library to stream.
Let the OSS Enterprise newsletter guide your open source journey! Sign up here.
Firebase is a development platform known originally for its realtime database that’s still at its core a multi-node, key-value database optimized for synchronizing data, often between user machines or smartphones and centralized storage in the cloud. It’s designed to make life easier for developers by handling much of the pushing and pulling of data. That relieves app developers of the programming burdens associated with managing versions or locations. They can write the new bits to Firebase and the data will be consistent throughout the system.
Firebase is valued largely because it can constantly propagate and synchronize changes between local copies of information stored on users’ machines with versions kept in the cloud. Firebase eliminates many of the challenges of mixing authentication, synchronization, and segregation by juggling multiple versions and ensuring the right bits are the same throughout the system.
Today, Firebase is a central part of the Google cloud development tool kit. The product, a culmination of years of evolution, was positioned at the center of a mobile backend-as-a-service offering from the company known as Firebase, which Google acquired in 2014. Firebase is available through Google. Meanwhile, open source libraries and tools are available that interface with Firebase.
Firebase was early to take the form of a database that is not limited to one physical computer. Its modern form allows it to split workloads between multiple machines by either splitting the datasets, creating copies of their bits, or both. Firebase extends the algorithms used for datacenter consistency to the entire network by treating the data stored on users’ phones or desktops as local versions of the big database. In essence, your phone or your laptop is now part of the cloud.
While Firebase began as a separate company, Google has tightly integrated the software with its other cloud software products. Firebase ML, for instance, is a collection of libraries that leverage the power of Google’s other tools, like AutoML or TensorFlow. Adding features like those used to find text in an image or find appropriate labels is relatively easy.
Developers don’t need to worry about the dangers of inconsistencies between the data on, say, a user’s phone and the central database. Once the data is stored locally, Firebase ships copies to cloud servers so both versions are consistent. The transfer also works in the other direction because changes made on the cloud are replicated locally. Server-side developers can communicate with client software running by simply writing data to the Firebase cloud.
Google’s Cloud Functions, a serverless option, can also be integrated with Firebase so new data can trigger functions. When a user first logs in, or each time the database changes, a function will be invoked that can then trigger other events or functions in the Google cloud or elsewhere. These functions can be used to post-process images, clean up text, or ensure data consistency.
Firebase Cloud Messaging adds an additional layer of organization to the process of sending messages by grouping users together by either name or topic. Once initialized, Firebase can ship event notifications as messages to predefined groups or users who have subscribed to certain topics.
Google has also built out a number of standard Firebase use cases, like resizing images or triggering email messages, that simplify some common tasks.
Flutter is another higher-level tool, also built by Google, that integrates sophisticated user interface widgets with the database underneath. It works with a number of databases that range from the simple, like SQLite, to the full-featured, like PostgreSQL. It can also rely upon Firebase itself.
How are established database companies approaching the problem?
When it comes to web development, most older databases placed too many programmatic chores on the backs of developers. These databases began life by storing data on just one machine. While the major databases have long expanded to replicate and share data across multiple databases and machines, they have generally avoided integration with the small, local copies of data cached on users’ machines. The cloud vendors are extending their own databases, often with extra layers.
AWS created Amplify by linking together several of its lower-level tools to handle authentication and data storage. The DataStore layer will store information locally and push it to the AWS cloud when a connection is available. The tool also bundles a number of other services, including hosting and a set of server apps for editing data structures and content.
What about the upstarts?
The problems Firebase addresses are common in modern development. So it is not surprising that upstart players are working to build on, or even outright replace, Firebase.
Supabase and NHost are building backend alternatives to Firebase by adding layers for authentication and replication to PostgreSQL. They’ve married more modern standards like GraphQL with a server-side core built on a trusted SQL-based engine.
Much of the competition is coming from full development platforms that are also adding layers to simplify interacting with the database. Parse, for instance, is a full platform for building client-server apps that integrate with a central database. It adds features like a GraphQL interface, a file system, and a notifications framework to a core that rests upon either PostgreSQL or MongoDB. Back4App is another layer built on top of Parse that simplifies the coding even further.
Some other competition comes from non-database companies that offer many of the features as part of mobile app development frameworks. Products like Xamarin are now more tightly integrated with clouds like Azure. GameSparks is designed to simplify building backends for networked games, a job that requires doing much of the same synchronization as Firebase.
Other tools, like Pubnub, have approached the problem of streaming messages for tracking virtual groups and spaces, another challenge that requires much of the same support Firebase provides. In some cases, such focused products may deliver exactly what is needed without building on top of Firebase.
Is there anything Firebase can’t do?
Firebase is an ideal tool for helping developers get started quickly because it handles much of the work of replicating data and pushing event notifications. It abstracts away the challenges of storing data simultaneously in a user’s phone and a central database.
The main data model is limited to NoSQL, although some developers have created FireSQL, a tool that adds SQL-like syntax. Firebase pricing is set according to each read or write, a feature that appeals to earlier developers but can sometimes surprise developers if the price jumps rapidly with a product’s growing popularity.
VentureBeat's mission is to be a digital town square for technical decision-makers to gain knowledge about transformative enterprise technology and transact. Learn More