Would you recommend upgrading shields or armor first?
The short answer is no.
There is an important trade off between shield and armor. Obviously shield upgrades affect more units (air and ground), but beyond that, shield regenerate so they often prevent damage more than once. By comparison units often have less shields than health. There is also a cost difference between the two.
edit: It is important to note that pro level Protoss players (ie. tester) often choose armor over shields. The reason for this, is that in a large battle, the higher amount of HP usually means that armor will have a large effect during the course of the battle, additionally, EMP dictates that Protoss are often less able to rely on their shields in TvP.
If I’m not mistaken, shield affects all units and buildings, whereas the armor is only for units. But I’m not 100% sure if this is correct. Anyway, I’d say upgrading the shield first is usually a good idea, as it directly affects your cannons.
Honestly, a lot depends on your strategy.
If you are building a very diverse army, then you should get Shields first, because they benefit your entire army. Alternately, if you are using cannons heavily for defence, then get shields because it benefits your cannons.
If you are going all-ground or all-air, then get armor because it's more cost-effective.