Combine fish, onion, and lime juice in a large bowl. Cover with plastic wrap, and marinate for about 8 minutes; drain, pressing into strainer to remove excess liquid. Return fish mixture to bowl. Stir in tomatoes, avocado, cucumbers, and cilantro. Season with salt, pepper, and hot sauce. Serve immediately with tostadas and lime wedges.