Juice the lemon and limes until you have about 1 cup of fresh juice.
Place the diced snapper in a small glass bowl and pour in the fresh juice to cover the fish. Swish the fish around in the juice so that every piece floats in the liquid. Cover with saran wrap and refrigerate 3-4 hours until the fish is "cooked" and opaque.
In a large bowl, combine the red onion, bell pepper, cucumber, jalapeño, pineapple and cilantro.
Set a fine mesh strainer over a small bowl and pour the fish into the strainer. Transfer the fish to the vegetable mixture. Spoon out 3-4 tablespoons of the citrus juices and add to the fish mixture. Add the diced avocado just before serving and gently toss the mixture together to combine. Season with salt and pepper and hot sauce (if using) to taste.