Having done my time in "two tier" stacks, I would argue the biggest disadvantage they bring is challenges with testing. This could be unit, integration, or just manual acceptance testing.
Having to spin up a separate environment or mock EVERYTHING leads to testing friction which in turn leads to testing simply not being done. If you stop testing, it's hard to maintain a consistent level of quality with your software, especially as it grows and you bring on new developers.
That being said, I appreciate the turn-key ease of use with services like Parse. If they solve the local development/multi environment issue for testing, I'd be more apt to use something like it and avoid the administrative headache of maintaining a backend infrastructure.
"forget server code" comes at a price: tying yourself to a 3d-party proprietary user database for security. That will be an acceptable tradeoff only for some developers... but not the kind with a lot of money to spend. As they start worrying about revenue I predict that the Parse and Firebase of the world will have no choice but to allow execution of arbitrary server-side validation... so much for "forget server code".
Having to spin up a separate environment or mock EVERYTHING leads to testing friction which in turn leads to testing simply not being done. If you stop testing, it's hard to maintain a consistent level of quality with your software, especially as it grows and you bring on new developers.
That being said, I appreciate the turn-key ease of use with services like Parse. If they solve the local development/multi environment issue for testing, I'd be more apt to use something like it and avoid the administrative headache of maintaining a backend infrastructure.