Pre-heat oven to 350 degrees.
In a large cast iron skillet, cook the bacon on medium heat until crisp. Drain and set aside.
Beat the eggs in a large bowl with the milk.
Discard all but 2 tablespoons of bacon grease.
Add the onions to the skillet and cook until soft and lightly golden
Stir in the hash browns and cook for 3-5 minutes, or until lightly browned on edges.
Add the spinach to the skillet and stir until wilted.
Add the bacon back into the skillet and stir to combine with hash browns and onions.
Sprinkle the cheese evenly around the skillet. Pour in the eggs gently.
Bake for 30-35 minutes or until eggs are set.