Firebase
Couchbase Mobile Sync Gateway
CouchDB
PouchDB
Amazon Cognito
Azure Mobile Data Sync
Cloudant
My main issues with Firebase (in order of importance) were:
a) Uncontrollable sync. It seems to always use a web sockets/long poll, and count how many connections you have. Which is not appropriate when data changes infrequently and you're concerned about your users battery life. Mainly, I wanted to be able to do push using GCM/etc.
b) Single unmodifiable conflict resolution strategy
c) SaaS-only
It seems very polished and easy to get started with, but since there was no upgrade path to anything else, the fact that it really wasn't a good fit for my sync needs made it seem like a bad option.
I'm not a huge fan of these systems in general since they have you connecting to a dedicated database that you plug code into (eg as a sync function), rather than exposing building blocks for you to build a sync service.
But I'm still using pouchdb on the client for the moment, and I haven't fully figured out what the backend will be, but at least I have a few options in pouchdb-server/couchbase/couchdb/cloudant.