So here's what I have for Firebase pros and cons so far:
- Autoscaling built-in
- Can start for free (only need to start paying once we hit 50 connections)
- Robust APIs for Javascript (including several frameworks like Angular), iOS, and Android
- Built-in support for authentication services like Facebook, Google, and Twitter
- Declarative Security Rules model allows us to enforce read/write privileges and data validation throughout the tree
- Need to build indexes manually
- May need to build "event log" manually as well (in separate sub-tree?)
- Implementation of REST API could be difficult on embedded platforms
- Data validation rules do not support complex objects directly (you'd need to validate individual child nodes separately)
- Vendor lock-in - if we need to get all our data into a different platform, how difficult? (just getting an export may not be good enough)
- Cost-comparison to self-hosting in AWS
A serious problem is once you use Firebase, you basically gave up the China market as everything from Google is blocked in China. You cannot overcome this unless you rewrite everything from ground up.