There was ATC, the controller even admits that he screwed up.
The aircraft was cleared to land. Separately, ATC cleared the firetruck to cross the runway, which was responding to a separate emergency, but immediately cancelled that crossing clearance ten times. Evidently the firetruck didn't hear.
The aircraft had reverse thrust activated, as photos show. Aircraft cannot stop on a dime, especially immediately after touchdown.

@david_crispin Slowing down a plane is difficult event if they did identify the threat. All traffic - including ground - is coordinated via ATC. This will all come out in the first NTSB review, but there are only a couple of options.
Fire truck should have known what the active runway was (by instructions and lighting) and been told to hold and get clearance. ATC would then have directed them to proceed.
The facts already indicate (by the release audio with controller saying "I messed up") that they may have been incorrectly allowed to proceed across an active runway with an T/O operation in place.
Again, this needs to be confirmed by NTSB but it appears the likely cause.
Tragedy no matter what...