When libvirtd starts up it will automatically probe to see if firewalld is available. If it is running, then libvirtd will use firewalld DBus APIs, instead of running iptables directly. So this from POV everything that libvirt does wrt firewall rules should continue to "just work" if you have firewalld enabled.
If you are adding custom firewall rules yourself, separately from those libvirtd adds, then you can use the
firewall-cmd --direct option which essentially allows a straight pass-through mode - almost every option you would use with the
iptables command is valid for