March 09, 2019
Score 9 out of 10
Overall Satisfaction with Firebase
Firebase is an extremely simple to use NoSQL data store from Google. Firebase provides front-end SDKs for the web, iOS, and Android usage, meaning there is no need for any kind of database setup or maintenance -- you just simply use the front-end SDKs. Firebase is a great tool for light workloads that do not require complex SQL queries, deep population of database selections, or complex sorting/filtering options.
- Firebase removes the need from having to run any kind of backend database -- front-end clients simply interact via the provided SDKs.
- Custom security rules allow for fine-grained tuning of what front-end security settings are allowed.
- Extremely cost-effective and has a generous free tier for new projects.
- Firebase/Firestore has very limited support for querying more complicated items; for example, performing a simple string search is not possible.
- While upfront costs are low, costs can grow quickly if you're not careful about what you are being billed for.
- Dashboards have at times shown different information to what is billed, and support from Google is less than stellar and not as effective as that from Amazon or Microsoft.
- Makes building real-time interfaces easy to do at scale with no backend involvement.
- Very low pricing for small companies and green-fields projects.
- Lack of support for more complicated queries needs to be managed by users and often forces strange architecture choices for data to enable it to be easily accessed.
Firebase is well suited for projects with simpler database workloads that require its real-time features. For data that is heavily read in real time, it's a great choice and gives developers a lot of features that would have been complicated and time-consuming to build up front for free. If the workload is more complex, a different database engine is generally preferred.
For small projects, or for larger, simple projects that want to take advantage of Firebase's real-time database functionality, Firebase is a great choice -- either the legacy real-time Database or new Firestore. Firebase is not a good choice on its own for workloads that expose a custom RESTful API, services that require complex database operations especially re: search queries and deep joins/population of resources.