My bullet Clone (Instantiate ) is not following the Player

when ever i press “Fire1” bullet shoot from the fire point, but when i move player bullet still shooting from the fire point .
I had already make fire point to the child of my Player but still fire point is not following the player position .

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour {

	public float speed;
	public Vector2 moveDirection;
	Rigidbody2D rb2d;
	public Transform topLimit;
	public Transform bottomLimit;

	public GameObject bullet;
	public Transform firePoint;
	// Use this for initialization
	void Start () {
		rb2d = GetComponent <Rigidbody2D > ();
	// Update is called once per frame
	void Update () {
		moveDirection = new Vector2 (Input.GetAxisRaw ("Horizontal"), Input.GetAxisRaw ("Vertical"));

		rb2d.velocity =  moveDirection * speed;
		transform.position = new Vector3 (Mathf.Clamp (transform.position.x, topLimit.position.x, bottomLimit.position.x), Mathf.Clamp (transform.position.y, bottomLimit.position.y, topLimit.position.y), transform.position.z);
		shoot ();

	void shoot()
			Instantiate (bullet,firePoint.position, Quaternion.identity);

Hmm. Are you sure what you think is happening is really happening? I took your script verbatim and configured it on an object the way the fields imply. It worked exactly as I expected… bullets kept getting instantiated at the fire point.