Skip to content

Instantly share code, notes, and snippets.

@jburks725
Last active January 19, 2018 01:37
Show Gist options
  • Save jburks725/1ad9d8a14a1351941bc8 to your computer and use it in GitHub Desktop.
Save jburks725/1ad9d8a14a1351941bc8 to your computer and use it in GitHub Desktop.
Firebase pros and cons

So here's what I have for Firebase pros and cons so far:

Pros:

  • 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

Cons:

  • 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)

Other Concerns/Questions:

  • 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
@burkaslarry
Copy link

how about using AWS instead ?

@annjawn
Copy link

annjawn commented Jan 19, 2018

AWS is great, but it will really need someone who knows it very well to just manage and configure things for you. It's extremely easy to get lost in the AWS console and a simple mistake can be catastrophic in the future. To me, it is increasingly sounding like for many apps, the initial release needs to use MBaaS service like Firebase, Backendless, Kinvey etc. Once your app starts to grow, you better be prepared with a revenue generating model since your backend (and most likely the entire app) will need to be re-written again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment