Multiplayer Prefab shooting issues.

So I made some tests after following Unity Learn that tutorial.

I had some issues with it.

My shoot script looks like this:

using UnityEngine;
using UnityEngine.Networking;

public class PlayerShoot : NetworkBehaviour
{
    public GameObject bulletPrefab;
    public Transform bulletSpawn;

    void Update()
    {
        if (!isLocalPlayer)
        {
            return;
        }

        if (Input.GetButtonDown("Fire"))
        {
            CmdFire();
        }
    }

    // This [Command] code is called on the Client …
    // … but it is run on the Server!
    [Command]
    void CmdFire()
    {
        // Create the Bullet from the Bullet Prefab
        var bullet = (GameObject)Instantiate(
            bulletPrefab,
            bulletSpawn.position,
            bulletSpawn.rotation);

        // Add velocity to the bullet
        bullet.GetComponent<Rigidbody>().velocity = bullet.transform.forward * 6;

        // Spawn the bullet on the Clients
        NetworkServer.Spawn(bullet);

        // Destroy the bullet after 2 seconds
        Destroy(bullet, 2.0f);
    }

}

I have done all steps correctly but have these issues:
When being the host you can see your own bullets like you are supposed to but the other client cannot see them.

WHen you are client and shooting you cant see your bullets but host can.

What is the issue here?

Have you registered the bullet prefab with the NetworkManager component (under registered spawnable prefabs)?

Yes.