See the UVM Cookbook.
As with any TLM communication in UVM, the uvm_tlm_fifo includes a put_export that connects to the producer’s put_port. When the producer calls put(), the implementation in the fifo puts the data into the fifo queue.
On the other side of the uvm_tlm_fifo, the consumer can call get() from its get_port and the get_export in the fifo implements the function to return the data.