Firebase’s major contribution is having a backend for your app without writing a backend. It also handles user authorization flow, which if you’ve ever written login scripts yourself, you know this is a relief. It’s other killer feature (as if it needed one) is the ability to listen for relevant changes to the database in real-time. Behind the scenes, your app uses an open, idle websocket to send and receive data.
I’ve written applications with websockets myself before, using the Google App Engine. It’s a lot of hoops to jump through, with the requirement of a backend server, so having a ready built solution is a joyous change.
Without too much sweat, I was able to get users to log in using Firebase, then start tracking their statistics. I don’t have a use for the real-time database updates, but coding with or without them is more or less effortless. The data was always a simple function call away.
Structuring the database as (essentially) a json object took me a while to wrap my head around, but now that it’s done, I’ll happily use it again.
I plan to move all of my websocket traffic to this service in time – ultimately, once it’s set up, it’s just less for me to think about. Firebase is a fast, stable, simple and powerful service, and I can’t recommend it enough.