This is part 3 of a series detailing the steps required to obtain free hosting on a modern cloud provider.
In this part we take a look at Google Firebase. The documentation for this process is already really good, so this document will just be a summary.
Step 1 – Login or create a Google account
If you have a Google login, you can use it, or create a new one.
Step 2 – create a project
Within Firebase all related resources are contained within a project, so this must be created first.
- Click
Add project
- Enter a unique
Project name
– this must be unique to your login. If the name is also unique within Firebase theProject ID
will match theProject name
, otherwise a suffix will be automatically added. - Check the boxes, and click
Create project

Step 3 – create a hosting resource
Within the application a hosting resource is created.
- Within the project select
Hosting
|Get started


This is where you need to roll your sleeves up. Your Firebase web application is mostly controlled via a Command Line Interface (CLI). You need to use NPM, which which should be automatically installed with Node.js
Open a command line (windows) or terminal window (mac) in a suitable folder and use the CLI to create your Firebase hosting resource. Copy the install command from the browser and paste it into the CLI and hit Enter
.
NOTE: you will need Admin or sudo permissions to complete this.
npm install -g firebase-tools
firebase login
firebase init
firebase deploy
You should now have a working demo website.

firebase init
To make sure this is the correct content, you must now copy all the files and folders from your website into the public
folder and run firebase deploy
again.

Summary
IMHO Firebase has the best documentation that I’ve seen, and if you are comfortable with the CLI then it’s all pretty straight forward. However, if you are not at home in the terminal, then the CLI will be very intimidating to most non-developers.
There isn’t yet a built in story for deploying from source either, which I think is a mistake on the part of the Google team. Git is so ubiquitous now that this should be available by default. Deploying via a repository also enforces development “best-practices” such as source control and CI.
There is an excellent Firecast on how to deploy via Travis CI, but adding another dependency into the mix doesn’t sit well with me – it is adding unnecessary sprawl and complexity.