Just to be clear…
Any value you pass from client to server can be used for cheating. In your case a Line of Sight firing cheat could be used.
Client has no direct line of sight to target. Cheat calcs clear angle and provides a muzzle vector. Passes that to server server uses it to spawn projectile for a hit. Basically a hit anywhere, from anywhere cheat.
A solid approach would be to send a network clock time on fire. Server can rewind player position to match time, get muzzle and camera locations and do its own trace for spawn. Then use projectile path prediction (adv) to sync and check for pre-spawn hits (use PPP adv output). Then spawn server-side.
Next have the server rpc all other nearby clients to have the shooting client fake fire from their proxies current local position (fx only, no projectile).