Where I live, and I assume in a lot of northern Europe, being on strike is not a valid reason to fire someone - if it's in the correct part of the contract cycle (the contract is 1,2 or 3 years and workers promise not to strike in return for the conditions in the contract). Strikes typically occur when the contract is up and a new one is being written.
Second - a company that would cross the unions by hiring new workers would be blockaded. First by the union itself, but very soon by other unions. For example a restaurant that doesn't pay the correct wages might not be able to get deliveries of certain products, garbage won't be picked up etc. Outside the entrance customers are handed flyers that the restaurant is mistreating staff. All of this is regardless of whether the restaurant staff wants to be union members and regardless of whether they are happy with their contracts.
And this is working very well actually - there is for example no need for minimum wages set by law. Strikes are rare, and "illegal/wild" strikes outside of contract periods are almost unheard of. Perhaps surprisingly, businesses are quite happy with this setup. Weaker unions would likely mean more unnecessary strikes, and definitely more regulation of things that are now covered by agreements.