1. In a large nonstick skillet over medium heat, fry bacon until crispy. Turn off heat and transfer bacon to a paper towel-lined plate. Keep most of bacon fat in skillet, removing any black pieces from the bacon.
2. Turn heat back to medium and add onion to the skillet; sauté, stirring occasionally, until onions begin to soften. Add potatoes and toss until evenly coated in bacon fat. Pour in water and cover skillet with a large lid. (This helps speed up the cooking and prevent burning.) Cook until the potatoes are tender, about 20 minutes, checking potatoes occasionally. If they start to brown too quickly, remove the lid and add more water.
3. When the potatoes are tender, remove lid and stir in garlic, green onions, and paprika. Season with salt and pepper. Using a wooden spoon, make four holes in the potatoes to reveal bottom of skillet. Crack an egg into each hole and season each egg with salt and pepper. Sprinkle cheese and cooked bacon bits over the entire skillet. Replace lid and cook until eggs are cooked to your liking, about 5 minutes for a just runny egg. Serve warm.