Using uvm_analysis_fifo is fine, but requires calling get whenever an item is available.
uvm_analysis_imp or uvm_analysis_imp_decl(port_identifier) are helpful because they have the TLM connections in it, you don’t have to call get. Instead, there is a write method (write_port_identifier for uvm_analysis_imp_decl) which gets called every time there’s a new item available.
Uvm_analysis_imp example:

Example for uvm_analysis_imp_decl:
https://verificationguide.com/uvm/tlm-analysis-port-multi-analysis-imp-port/