A few days ago one of our prospective clients reached out and asked us if Firebase was a good fit for their mobile project. They were a travel agency that served charter flights worldwide and needed an app for internal use. They needed an expert iOS team to develop their idea and this is what they asked us:

I would like to know from you if Firebase is a good solution for our project. In the future we would like to use the Firebase as the backend for our new website which we also need to update.

Since there were only two people in their startup, this was my answer:

Firebase is excellent for most projects – it’s really convenient and since you’re only going to use the app within your startup, you will never have to pay Firebase a dime as you won’t need a lot of bandwidth/connections.

Firebase is an all-in-one backend solution and you pay as you go. In other words, you only have to pay when you make money (aka your app gets popular and lots of users use it). Overall, I think this is worth the trade-off. We at cesare use the platform literally every day and this is what makes it so appealing:

Authentication

Most of the app we build require some sort of authentication. Firebase provides you with different methods of authentication: via email and password, social accounts (Facebook/Google/Twitter/GitHub) and phone number (you provide Google with the telephone number, and Firebase sends the user a verification code they have to enter in the app). Authenticating users is as easy as writing a few lines of code.

Firebase lets your users authenticate, register, reset their password and verify their emails. You can also go cheap and use a pre-built authentication interface in case you want to save development time (“move fast and break things”). It’s called FirebaseUI and it’s free & open source (although it doesn’t look that good in my opinion).

Real-time Database

Firebase has a real-time database where you can store your data. Data is grouped into different “nodes”, which makes the whole thing a lot different than what you’re probably used to (MySQL/Parse tables). In Firebase you define a few nodes such as “users”, “invites”, “projects” and then you add children (sub-nodes to these nodes). You can append/remove data directly from the interface:

Learn more about structuring data with Firebase from the official documentation here. The great thing about the Firebase Database is that it’s accessible by every platform (the web, iOS, and Android), making it really easy to sync data between devices and platforms. This means that if you decide to build an iOS app today, you will still be able to build an Android application because all the data is stored in one place.

The problem is that this database interface can get a little bit messy and hard to deal with if you want to enter new data, so many clients have asked us to build a web dashboard (we either use Google Sheets or Zapier) where they can add or change data that is displayed in the app.

Dynamic Links

Dynamic links are awesome because when tapped they take the user directly to the app (or to the App Store or Play Store if they don’t have your app installed). Links can contain chunks of data (referral codes), which enable a whole new level of possibilities (for example they can be used by users to invite new members to a group or project and reward them for doing so).

We have used dynamic links in a few projects which required users to send “invites” to other users to join a group. Firebase provides developers with a built-in dynamic link generator that user A can use to invite user B. User B taps on the link which contains some data, and is redirected to the app (the user flow can be customized depending on ).

Wrap-up

These were just some of the features we really like of Firebase – we use it on a daily basis and our clients love it so feel free to give it a spin at Firebase. I personally plan to use Firebase at hackathons and develop a GitHub library that users will be able to use to call Firebase functions – making it super easy to adopt.

I believe Firebase is a must for every startup. If you need help with setting up Firebase or would like us to take your startup idea and transform it into reality we can help. Get in touch here and we’ll be happy to help.