I'm in similar position. I can't say I've solved the problem yet, but I can give you some tips from my pitfalls.
1) First if have friends or family who know software, ask them to be advisors or "vetters"
2) Learn enough to know about the big picture questions: how will this scale? What programming language are you using and why? How are you programming in way that other developers can easily step in later? At the very least you can see if they can explain their choices in a coherent way.
3) Talk to a bunch of firms. They will add different dimensions that you hadn't probably thought of before. You can add those to your list of questions.
4) I hate to say this, but you kind of have to throw trust out the window and make sure you understand every fine point of any contract you sign. Will you own the code or the product? Is there any ongoing licensing fee they will charge you? Is there some kind of quality guarantee?
5) I would hire advise against an hourly, unbounded rate. Get a fixed bid.
6) Get a delivery schedule. Also if it's a lot of work consider, chunking the process down into chunks and pay per chunk.
7) Ask to talk to previous customers.
8) Google them. I hate to say it but sometimes you can find unflattering anonymous reviews by employees-- for whatever that's worth.
9) Think about whether you are going to need them to manage the MVP and how long (before you bring anyone in house) and ask what their maintenance rates are.
9) Talk to enough people that you get a sense of the median rates/timelines are. So if someone is way over or way under, you might think twice.
That's all I can think of. Hope it helps!