- Allow the user to set sync to happen only when connected via Wi-Fi (not sure if this is possible in iOS, but it's easy to check how an Android device is connected to the Internet).
- Give options for sync intervals. Most of our users choose once a day. Other options include sync'ing a call or text right after it's finished or received if they need their data to be up-to-date within minutes.
I'm not sure what's needed for Ruby but they have good SDKs for iOS, Javascript and others. You can also use their REST API with Backbone.js and AngularJS (BackFire and AngularFire).
After using it since February, I really can't imagine going back to any other solution. I did things in Firebase the first day that took me weeks to get working in iCloud with CoreData.