It seems possible to detect a single photon.[1, 2]
But the photon is a free particle. Its momentum is decided precisely and it means that the position of the photon is uncertain. The photon can exist everywhere and the probability of detecting a photon at the finite region would be zero. To detect the photon, we would have to put our detector infinite time.
So my knowledge of a free photon and the possibility of detecting it seems contradictory. How can we detect a single photon?