Google Firebase

I am developing a Vue.js application on Google Firebase. Firebase provides hosting, cloud functions, database, file storage, and an authentication module. My source code is on BitBucket and CI/CD is accomplished with BitBucket Pipelines and Bash scripts.

I give Google Firebase “5 stars” for documentation and video tutorials. The authentication module makes getting started with users a snap.

The “NoSQL” database, Firestore, is also a breeze to get started with. So far, I’ve been using it directly, but I can see the need for a RESTful layer in between it and the client code. Firestore and it’s ilk (Redis, MongoDB) have their advantages, but providing a structured interface for multiple clients will reduce headaches down the road. It also decouples the client from the actual database technology. This seems to be a common pattern. I’ve used it in C++, Ruby, and JavaScript.

Firebase Cloud Functions gives a way to provide highly scalable endpoints. I haven’t explored Cloud Functions (AWS Lambda) too much. Conceptually, I view them as an Express.js application without the Express.js Firebase does offer triggers to database events, which feels like a stored procedure to me. I’m using them, but cautiously. It certainly helps to move business logic out of the clients.

Firebase provides hosting as well, accessed using their firebase-tools Node package. With my source in BitBucket, I’ve added BitBucket Pipelines. BP is typical of CI/CD services (Travis, Circle, Azure DevOps) with a YAML file to describe each pipeline.

How much will this thing cost? At the moment, $25/month for the Blaze plan on one Firebase project. It appears typical to use one project per stage.

I’d like to end this post with a link to the project, but we are  not ready to launch yet. Stay tuned!