| Not the person you responded to, but I just joined somewhere new and it's clear Firebase was the biggest mistake / is the biggest source of technical debt. It was helpful for bootstrapping 6 years ago, but now it stands out as the worst part of our tech stack. For our small shop, we will not be able to migrate any time soon. - Most frustrating are the outages we have no control over. It seems like every other day, the server running our firebase instance mysteriously disappears from the internet. We can ping `my-app.fibaseio.com` but receive no events from it. This lasts anywhere from 5 to 25 minutes. Usually there is no blip in the firebase status page. The main devs have given up trying to debug it. - We are nearing the resource limits of the paid plan for a single realtime database. We're working on splitting our one database into a master and sharding what we can. - The particular eventual consistency and transaction semantics require workarounds everywhere. If you want an atomic transaction, you have to perform it on some common parent, but you are also encouraged to keep your data model flat and normalize as much as possible. Our integration test suite is tiny and horrendously slow because we cannot rely on Firebase to be timely, so there are huge timeouts everywhere that regularly take ages. Every past attempt at tuning the timeouts to be shorter eventually causes spurious failures a week later. - Unless your data closely models the kind of chat application Firebase was built around, you end up needing a real database eventually. Not just to perform real queries with joins and complex logic, but also to essentially maintain indices that anemic mobile clients can use because the firebase filtered query semantics are limited to a single key. Now you need some kind of daemon to shuffle data in and out of your real database. Unfortunately, your real database is missing tons of foreign key constraints because that's the easiest way to handle firebase's eventual consistency. That's just my take a month after joining somewhere intimately coupled to firebase. |
Well, now you have my interest! Is this a talent gap or fatigue in the organization? Sounds like a meaty challenge.