It's actually surprisingly easy to still fire people, you just have to have valid reasons: employee didn't come to work, employee works badly (Schlechtleistung), employee yells at customer, lack of work to do at the company etc. You just have to create the paper trail and follow the clearly defined process for firing (i.e. it has to happen at least two times, and you had a stern talk with the employee about it (Abmahnung).
You can also still fire employees without given cause in the first (up to) 6 months of employment.
What you definitely can't do is discriminate against employees, e.g. fire pregnant women because they are pregrant, fire migrants because they are migrants and so on. You have to have an actual, factual cause.
Also let's be clear with the concept of Scheinselbstständigkeit: This is simply a hedge against companies engaging in tax fraud by pushing people to be self employed when they really aren't. Scheinselbstständigkeit only triggers if a person gets over 80% of their revenue from a single customer, over a longer time, and has other things that hint at employee status, e.g. an own desk and company mail account, has to ask for holiday and so on. Simply having a large contract for e.g. 4 months with a single customer won't trigger Scheinselbstständigkeit.