As far as I know, future sight can be prevented only by these 4 things:
It misses.
The target fainted and the player has not yet replaced it.
The target has a type or ability (like dark type or wonder guard) that makes it immune to future sight's type (usually psychic but can be changed by a few things).
The user and target are the same individual Pokemon. (one way to achieve this is targeting the ally and then using ally switch)