I’ve been playing with Angular and Firebase over the last few days. But it sounds better the other way round. I remember one of my school teachers getting angry with some other kid being naughty and shouting “you are playing with fire!”. Except the teacher was German so it was “you are playing wiz fire!”. We used to shout that at each other for a while after that. Kids, eh?
Anyway, one of the core principles in Angular is two-way data binding between the model and the view (in your MVC structure). The user changes the data in the view, it gets changed in the model. Some code changes the data in the model, it gets changed in the view. It’s pretty neat in practice and makes pages feel really dynamic as you interact with them.
So that’s two-way data binding but what if you could go another layer down and bind that to your database as well and have all three update whenever any one of them is changed? Well that’s what Firebase allows you to do through the AngularFire library. You just bind your model to a Firebase object and you get this:
(Normal Angular data binding is the bit within the browser window frame)
The first time I saw the press of a my little test button in one of my browser windows immediately result in an update element to an element in a different browser window (routed down through the model to the Firebase and back up through the model again), it really did feel like magic.
“Any sufficiently advanced technology is indistinguishable from magic.”
– Arthur C. Clarke
Give it a try. As it happens, the Google Developers channel on YouTube just posted a little introduction to AngularFire: