In a medium bowl, whisk together the eggs and a pinch each of salt and pepper.
In a large skillet over medium heat, fry the bacon until the fat renders and the bacon is crisp, 5 to 6 minutes. Use a slotted spoon to place the bacon on a paper towel-lined plate. In the same skillet over medium heat, cook the shallots, stirring occasionally, until golden brown, about 4 minutes.
Remove the shallots from the skillet and drain on the paper towel-lined plate. The shallots will crisp as they cool.
Wipe out the skillet, return it to medium heat, and melt the butter. Add the beaten eggs and cook, undisturbed, until a thin white layer forms around the edge of the skillet. Using a rubber spatula, gently push the eggs around the skillet until fluffy and barely set, 2 to 4 minutes.
Immediately scrape the eggs onto a plate and gently fold in the cheese.
Place each tortilla on a plate and top with the spinach or kale, if using, eggs, and avocado. Sprinkle with the bacon, shallots, and, if desired, scallions and/or cilantro. Serve with lime wedges and salsa on the side.