Make the crema: Mix sour cream, lime juice, garlic, and salt. Set aside.
Prep the fish: Pat fish dry, season with salt and pepper, and lightly dust with flour.
Mix batter: In a bowl, combine flour, cornstarch, baking powder, spices, and salt. Add sparkling water and whisk until smooth. Add egg if using.
Heat oil: In a deep skillet, heat oil to 350°F (175°C).
Fry the fish: Dip fish into the batter, then fry until golden and crispy (2–3 minutes per side). Drain on paper towels.
Warm tortillas: Heat tortillas in a dry pan or wrap in foil and warm in the oven.
Assemble tacos: Add cabbage to tortillas, top with fried fish, crema, avocado, tomato, and cilantro. Squeeze lime on top.
Serve immediately while crispy.