The switch needs to be rated for the voltage and current AND type of current (AC or DC) of your load. And if it's illuminated or has 3 or more pins, wired correctly.
Since you say it works for a while then slowly stops, it's likely the switch is not rated for the current, or for DC, and the solenoid is causing the switch contacts to get corroded on opening causing worse performance.
No, a resistor is not needed here. The switch needs to be atleast 12 V DC but should be more like 15 V or higher since an average car system is 14.5 V while the car is on and the alternator is running. But 12 V is nominal.
Yes, a relay is likely needed. At 7+ A, you won't find many switches at the auto shop that will handle it directly.
A common 10 to 20 Amp auto relay should be wired in between. 20 A is better to account for stall current. And an appropriate sized fuse should be inline somewhere. A 7 A solenoid can stall at a much higher fire-causing amperage.
Basic wiring: