Episode 16 — Top 10 things that surprised me when using Firebase for SpendSimple and TravelShoppingBuddy
Since Google acquired Firebase in 2014, it has grown incredibly fast and become a full-featured backend platform for apps of all kinds. I learned a lot in the past two year, using it everyday. Here are the top 10 things that surprised me in my journey.
- Firebase is not just for mobile apps any more — it has expanded feature set for WebApps/Unity/chatbot/games/machine learning jobs.
- The pace at which new functions are added is incredibly fast — Firestore, RemoteConfig, Crashlytics, ML Kit, Cloud Functions, Hosting, Test Lab, Predictions are ALL very recent additions.
- Free tier service is very generous — I haven’t paid much yet. I suppose Google is benefitting from the extra data to help its ad business. In addition, if you succeed to grow as big as Snapchat, you will become a profitable client of Google by default.
- Triggers are an important element of overall system design — Normal http requests from the front-end are just one of the many types of triggers your solution could respond to. If you adopt a broader mindset regularly, you can invent some really cool things with less effort.
- Local test server is available and essential — Publishing every code change to Firebase on the cloud is not quick enough for intra-day changes.
- Integration with UI frameworks (AngularFire, React Native, Vue, Ember, Flutter) is very robust. Especially with Angular, not surprising there because Google owns Angular. I prefer Vue for web apps though (more on this later.)
- Where is the undo button? (or database/config backup?) — Config is a big part of your solution. You can’t export them and put them in github. So, it’s a good idea to maintain a changelog so you know how to recreate an environment. On FireStore data export/import, there is good news… Google has just recently released their official solution this month.
- SDK upgrades happen almost weekly. Don’t be tempted to update them every time you see a reminder. But read the release news once in a while. New features pop up quickly.
- Dev/SIT/Prod separation requires carefully planning. There is no easy way to push config changes from one environment to the next yet. You will need the Admin SDK and script those changes.
- ML Kit is very efficient and easy to adopt… it operates in offline mode too. On Travel Shopping Buddy, ML Kit is fast enough to run inference on real time video feeds at 24 frames-per-second. Very impressive.
There are viable alternatives to Firebase (e.g. open-sourced Parse, AWS mobile SDK, MongoDB Stitch, Azure Mobile App Services) But Firebase is building a big lead on its competition.
Hope this helps and happy building.