In a large oven-proof skillet over high heat, cook the bacon. When it is finished, remove the bacon to a paper towel lined plate and set aside. Reduce heat to medium and add the onions to the same skillet with the bacon drippings. Cook the onions for 2 minutes and then add potato slices. Sprinkle with salt and cook for 3 minutes on each side. While the potatoes are cooking, whisk the eggs and the milk together. Add salt and pepper and set aside.
Preheat the oven to broiler low. When the potatoes are slightly browned and soft, sprinkle them with baby spinach. Pour the egg mixture on top and then sprinkle with the cooked bacon. Top with shredded cheese. Continue to cook over medium low heat, until the eggs start to set. This should take about 10 minutes. After 6-8 minutes, lift the edges of the eggs to allow the liquid to run down underneath and cook more completely.
When the eggs are set, transfer the pan to the oven. Broil until lightly browned, about 5 minutes or so. Let cool for just a few minutes before slicing and serving. Enjoy!