I am trying to decide which option to go with. (or another if it is better) This is for a messaging type app where there will be high volume of notifications and database writes
One thing that I have recently learned as I am struggling to find a solution for it is that firebase does not offer any work around device to device notification ; while it does offer server to device push notification and it's pretty easy to set up. But the former lack of feature is very important and there's a conspiracy theory that it's because they are trying to push you to use other google products as well.
Or perhaps, since it wasn't developed at first they kept it the same. I have figured that app engine is a way to connect the firebase and the devices for this purpose and so I would lean towards combining both firebase and other google products in this case app engine. If you plan to do more back end processing such as image processing, etc, then you are looking at app engine and compute engine for sure which could be integrated with Firebase resulting in a hypothetically powerful backend solution.
I'm puzzled that many discussions of Firebase (including the question and answer above) fail to mention what, to me, is a very important difference: price.
Here is the Firebase price schedule.
Here are the Datastore and GAE pricing.
It can be tricky to compare these, but my interpretation is that Firebase is very expensive.
And this should come as no surprise. GAE and datastore have to compete with similar services from Amazon, Microsoft etc., and the competition is fierce. Yes, these services are not as generic as infrastructure and SQL, of course, but they seem to be close enough that the prices remain competitive.
Firebase, on the other hand, is a premium service that competes with other backend services like Parse, and once you decide to use it I think it would be very difficult to switch. It should come as no surprise that Google is pushing Firebase so hard - they are probably going to make a ton of money off of it since they can price it at such a premium.
In my opinion, the upshot of this is that Firebase is a good choice for low volume and high-margin services, but if you plan to create a typical, consumer oriented, ad supported service that would depend on large volume to make money, then the cost of Firebase may kill your profit.
2017-10 Addition:
I looked at Firebase again with the recent release of Firestore.
I think it is important to be aware of another issue: using Firestore for an Android app means using the Firebase client library which is heavily dependent on Google Play Services, which means you can't deploy to non-Google devices including Amazon Fire tablets and (I believe) the entire Chinese market.
First off take a look at the chart here from the Google docs for a great comparison and contrast of the different mobile app backend services they offer. Here is the chart:
My personal opinions are (Updated):
Option 1 - Google App Engine using Cloud Endpoints and Cloud Datastore
Pros:
Cons:
Option 2 - Firebase
Pros:
Cons:
Read more in the link for possibly combining them.