Is there a large difference between using Firebase Database and another hosted DBaaS, such as MongoDB Atlas?
I use Firebase Database but keep it arms length by avoiding any of the proprietary features it offers. I use it exclusively as a JSON store which I feel I can easily export at any time if I wanted to switch to another NoSQL DBaaS.
A few people here are mentioning how it's crazy to depend on external services for an app, but as an 'indie' dev, I can't spend time maintaining a secure, high-availability database. Or a mail server when I can use SendGrid, or a logging platform when I can use Sentry, or any of the other service my app depends on.
Firebase is one of the very few products to offer controllable client data replication for full offline first functionality.
For apps that have significant offline requirements, this functionality can save a significant amount of time and significantly reduce the amount of code that needs to be written and more importantly maintained.
One of my clients just recently seriously considered going with Firebase. The choice came down to Firebase and Couchbase, which has an even better offline functionality. After reading this post I am glad that we didn't going with Firebase.
Of course Couchbase has their own problems. The supported version of Couchbase is prohibitively expensive for small organizations and Couchbase themselves strongly recommended against deploying the community edition. (The community edition also artificially lags behind the supported edition 6 months. Couchbase even delays critical security fixes that same 6 months.)
Thanks for the kudos. The team works very hard to make the offline first capabilities best in class.
I'm not sure who at Couchbase is "strongly" recommending against the Community Edition. Of course we'd like to have people on the Enterprise Edition, but I think the information is out there to make an informed decision. You should only be getting a hard push away from CE if they really believe you'll need the support. Anyway, this is good feedback.
> A few people here are mentioning how it's crazy to depend on external services for an app, but as an 'indie' dev, I can't spend time maintaining a secure, high-availability database
Nobody is saying that you shouldn't rely on external services.
What's wrong on the other hand is to depend on a proprietary database offered by a single vendor.
Firebase is a proprietary database, which means you can't go to the competition without having to rewrite your application. It's called vendor lock-in. Plenty of SAAS provide MongoDB as a service and you can install MongoDB on your own machine, so if a SAAS is price gouging you, you can move to the competitor with a cheaper plan.
If you are not using Firebase ACL or Firebase realtime features then you shouldn't even be using Firebase at all. Don't use MongoDB either. Postgres provide JSON types and queries and most Postgres SAAS are much much cheaper than MongoDB SAAS.
I use Firebase Database but keep it arms length by avoiding any of the proprietary features it offers. I use it exclusively as a JSON store which I feel I can easily export at any time if I wanted to switch to another NoSQL DBaaS.
A few people here are mentioning how it's crazy to depend on external services for an app, but as an 'indie' dev, I can't spend time maintaining a secure, high-availability database. Or a mail server when I can use SendGrid, or a logging platform when I can use Sentry, or any of the other service my app depends on.