Setting Up Firebase Projects and Authentication for Clojure Apps

Set up Firebase project and configure authentication.

Firebase project setup#

Firebase is Google's PaaS offering and has many useful features like authentication, real-time no-sql database, analytics, and more. We'll be using Firebase to authenticate our users, and for saving graphics data in the real-time database.

The Auth offering is practically free with some limits (which won't trouble us at the scale of Tinycanva). Firebase Auth also lets us use multiple auth mechanisms: email/password, Facebook, Twitter etc, using one common interface.

Firebase comes with SDKs for Java, JavaScript, and many other languages. We are in luck since ClojureScript can interop natively with NPM packages.

Anatomy of a Firebase project#

The Firebase project is the root container for an application. Each project has a database, a set of users, analytics, storage, and other features.

Each project can have multiple clients. For example, the Tinycanva project might have a web app client, an iOs app client, and an Android app client. All clients share the same underlying infrastructure - ie the same database.

Create the project#

For working on Tinycanva, you need to sign up and create a new project. The free (Spark) plan will suffice for our needs.

After signing up, visit the console and create a project:

Firebase console

This will open a project creation wizard. Walk through the wizard and set the name of the project (we suggest tinycanva).

Project name selection

Next up, we decide if we need analytics or not. In the screenshot below, we have enabled it. If you don't need them, turn the switch off. We are not going to use analytics further in this course, so it doesn't matter.

Option to enable analytics

If you choose to enable analytics, you'll be asked to connect to an analytics account or create a new one. We have created a new account called tinycanva:


This page is a preview of Tinycanva: Clojure for React Developers

Start a new discussion. All notification go to the author.