Fate has a much more narrative approach, less GM authority, and player-based plot control mechanisms. This can make for trouble transitioning from a more adversarial GMing environment.
Fate Core (and other recent Fate games such as Dresden) actually do a pretty good job of providing a suggested "menu" of powers and stunts for players to take; show them to your players and let those inform other stunt ideas through play, rather than trying to get the characters completely nailed down in advance the way you would have to in D&D.
To address the specific problems you mentioned:
The "blind sniper" problem is that in Fate, it's very easy for a cooperative party to stack multiple temporary aspect bonuses on a situation, then tag them all for a single super-successful roll regardless of innate skill.
Consider a sniper with a base skill of +0 - "has no idea what he's doing". First he hides on high ground (creating aspect "On a Grassy Knoll"). One of the other players - a tech - has made, and gives him some "Precision Armour Piercing Ammo", with suitable aspect. Then another player jumps into the road to stall the target into "Standing Still for a minute", so the sniper can create advantage by taking an acting to put him "Centred In My Sights".
Then the sniper free-tags all of those, for a base roll of +8 and a near-certain hit - with fate points to spare if he needs them.
Stacking enough of this sort of this can greatly reduce plausibility, but it's obvious behaviour for a group of D&D players where it's an expected part of the system to need to stack every combat advantage you can generate. I don't, however, feel it's as much of a problem as some Fate players do - this is behaves-as-designed. Fate characters are supposed to be able to beat pretty much any single obstacle if they can generate a convincing narrative. "He's not that good a shot, but it worked because an entire team was helping him take it" is a pretty good narrative to me, and gives the plot and characters room to develop further.
The "constant compels" problem arises when GM and players get caught in a Fate-point loop of constantly compelling aspects to force behaviour or non-actions from each other.
Remind your players, and remember as GM, that the point of compels is to implement narrative development. The Fate point economy will naturally limit how far players can push this, so it's not a problem unless the GM gets sucked into constantly offering Fate for compels. So don't. Compel when it's a narrative or character development to do so, not just because it's possible.
Long combats occur because groups have trouble actually taking out opponents of similar skill levels. This is particularly likely if your group is used to D&D, and trying to "wear them out" by all attacking individually. In Fate it's much more effective to set up a narrative about a couple of major attacks, taking multiple actions to support each other and make those go off well.
The best counter to most of these issues is threefold:
Let them have their moment. Players being able to tear through obstacles like this is not a problem in Fate the way it would be in D&D; it's expected behaviour of the system. Don't make it impossible, but ask what happens next and generate new obstacles. The problem can come more from a D&D-oriented GM feeling he has to make tasks "possible to fail" than from actual issues.
Your enemies are not idle. Don't GM in direct opposition to the player's actions, but instead change the game. Fate uses the same mechanics for social and combat conflicts, and it does so for good reason, expecting them to intermingle. Use it. Enemies will attack on social fronts, run away if they're in trouble, consult allies, adjust schemes, and all the other narrative options that are not often available to an orc in a dungeon.
Remember that in Fate, the player is always an informed participant, even when the character isn't. The gap between player and character knowledge is much bigger in Fate.
Situation: A hostage is tied to a chair. There is a trap which incinerates the room if anyone touches the hostage.
D&D answer: Tell the players nothing. Make hidden Perception checks. If anyone explicitly searches, make Search checks. Lie unless the players succeed at these checks.
Fate answer: Tell the players immediately that there's a trap. Let them make rolls and use aspects freely to see if the characters spot it. If one of the players has a "reckless" or "rescuer" aspect, compel it - offering a fate point if their character runs in carelessly and sets the trap off. Make the players partners in decisions that hurt their characters.
I don't have my books handy, so I can't quote rules for you, but here's my recollection based on several years of playing Fate:
Players can narrate their own actions. And they can answer questions that you ask them - filling in blanks and taking a portion of the burden of narration from you.
But when they want to create facts to their own advantage, they usually have to earn it. Earning it means succeeding in rolls or spending Fate points or sometimes both.
For example, if a player wants to to put the aspect On fire on something, she can't just make it so by saying so. She has to Maneuver Create an Advantage.
If a player wants to change an existing fact, that has to be earned, too, if it's important. The simplest example is this: A door is locked shut. The player wants it open. To make the open door a fact, she'll have to pick the lock with a roll, get the key with a roll, or bash it down with a roll. You and your players have an intuitive understanding that this is so.
Aspects can create facts for players, but they have to be powered by a Fate point. For example, I can say, "I'm invoking Better late than never to put myself in the scene now!" presuming I have an aspect "Better late than never" and the action has already started (so that I'm late) and also assuming I pay a Fate point for it. But the GM can give me a Fate point to cancel that invocation.
Your player created a fact out of nothing - he got to narrate how he succeeded at his roll, but since everyone's job is to make everyone else look awesome and his narration is squashing your awesome with "meh", you are fully within your rights to veto it.
Here's the only thing I would have done differently and would suggest that you do differently too:
As you say, "nah, sorry, but that didn't happen", hand over a Fate point. You are saying, silently, but concretely, "I am taking over narration here. Sorry, but in exchange, I am literally handing over narrative power that you can use later."
Best Answer
You do appear to be missing some stuff here. Here's how I'd handle your situation.
(As a foreword: bear in mind your players and the player characters being unaware of an aspect are two very different things, so you should make sure you distinguish between them.)
Entering the Scene
You said you entered a Forest with a River in it. The forest itself is pretty important, and you should probably have an aspect on the scene describing the forest you're in. If you also know for a fact there's a river, and it just wasn't mechanically important enough to be an aspect until now, you can just turn that fact into an aspect on the spot the moment anyone considers it important mechanically:
(This doesn't take an action or anything.)
You could either explicitly mention there's a Fording River, or just consider it implied by the Forest aspect.
If there isn't a river in the forest, or there might be but nobody's sure yet, you don't need to have an aspect for it. Your players or your NPCs can "discover" it later.
Creating the River
You would handle this very differently.
If there's a river aspect...
The characters might already know about it. It might even be a zone in the conflict! There's no need to "discover" it at all. People can begin using it immediately.
If the characters aren't yet aware of a River, it might not have even been significant enough to warrant creating an aspect for it. If it was that significant and they don't know about it, you're justified in asking them to try to discover it first. Normally you'd save this for bigger stuff, like the characters not yet being aware a recurring NPC is the Vampire Lord (but the players would probably know). This is just a small scene aspect.
If you didn't create a River aspect...
Your player can now Create an Advantage to "discover" the River, and create an aspect on the scene describing it. It was now retroactively there all along - but it only just became significant to the story. For the same reason, you might not worry about describing the small wildlife until someone throws nuts around and creates Squirrels, Squirrels Everywhere!! aspect.
This is your players' most powerful tool for just making things be the case in the world. Bear in mind: if they're in a desert, you'd be justified in making the discovery of a river a Fantastic (+6) challenge, or harder.
Using the River
Your Magical Tactician is at this point aware of a River, one way or another.
Nobody needs to spend any Fate Points to do stuff involving the River. The very existence of an aspect describing one means one exists, and people can interact with it. (Previous versions of Fate might have required a Fate point to use it, but not Core or Accelerated Edition.)
Your players might want to invoke the river (especially if they have free invocations on it), but this isn't required.
Now that the river exists: the Magical Tactician can go ahead and use a regular Create an Advantage action to freeze it and make things slippery. That's it! They can just do that now.
Here's a couple of things they may want to do with that Create an Advantage action:
Place a Slippery Ice aspect on the scene itself, allowing them to invoke it regularly around enemies near the river. They might have some free invocations on it to spend as a result of their Create Advantage action. However, the enemies might also invoke this one against them, too.
Place an aspect like Slipping on Ice or On Slippery Ice on a single enemy (everyone else will be unaffected). This now inherently means that enemy is busy Slipping on Ice or On Slippery Ice, and they'll have to Overcome that aspect if they want to stop slipping around. This might even mean they can't leave the river until they Overcome it - they're too busy slipping around to get away!
Your player may now invoke this aspect against that particular slipping enemy whenever they like, until it's Overcome.
Of course, the slipping enemy could also invoke it themselves: suppose that enemy rolled poorly on their defence, and their attacker is at +1 on this attack. The enemy could invoke their Slipping on Ice aspect to say they suddenly slip over, surprisingly helping them avoid the attack - they get a +2 to their defence roll, and their attacker is now at -1 and might fail their attack roll.