Not scheduling you hours is effectively the same as firing you. Yes, your employer can fire you for no reason at all. Just like you can up and quit working for them for no reason at all. It's a two-way street.
If your employer isn't giving you enough hours, consider working elsewhere. It's not like there's a job shortage out there. The press might not like talking about how great the economy is because of who our president is, but that doesn't mean you have to pretend the economy sucks as well. In many parts of the country, there are more jobs waiting to be filled than there are workers available to fill them.
If you're a good worker, don't cause trouble, show up on time, and do the job, you can pretty much get a job just about anywhere you want. If they're not giving you the hours you deserve, quit, get a job somewhere that will give you the hours, and leave them scrambling trying to find a replacement.
That's how the free economy works.