I was under the impression that if you used Chandra, Acolyte of Flame's -2, targeting Heartfire, you would still have to sacrifice a creature, but someone told me that was not true. What is the ruling here?
You may cast target instant or sorcery card with converted mana cost 3 or less from your graveyard. If that card would be put into your graveyard this turn, exile it instead.
Note that it doesn't modify the costs, only where you can cast the card from (in this case, allowing you to cast it from your graveyard). Compare the phrasing to Aluren, which allows you to cast specific creature cards for free.
Any player may cast creature spells with converted mana cost 3 or less without paying their mana costs and as though they had flash.
Note that even if Chandra had the phrase "without paying it's mana cost" you would still have to sacrifice the creature as the sacrifice is an additional cost, not a mana cost.
You still need to sacrifice a creature
Chandra, Acolyte of Flame's -2 ability gives you the ability to cast an instant or sorcery from your graveyard, but you still need to pay costs for it. This includes the mana cost, as well as any additional costs. Sacrificing a creature is an additional cost.
The ruling at the bottom of the card's Gatherer page (linked above) mentions this specifically.
You must pay the costs for the spell you wish to cast with Chandra’s last ability. If that spell has any alternative costs, you may pay those.
Here 'may' means that you have the option of paying optional costs (such as kickers). However, if the additional costs are not optional, you must pay them.