# firewall-cmd --get-active-zones
public
  interfaces: p7p1 p2p1
# firewall-cmd --permanent --zone=internal --change-interface=p7p1

The man page doesn't refer to --change be acceptable with --permanent
 
Just tested this on my laptop ...

firewall-cmd --permanent --zone=internal --add-interface=wlp3s0
systemctl restart firewalld.service

The man page for firewall-cmd states that actions with the --permanent argument are not applied immediately but rather only after a service restart or reboot.

After the above firewall-cmd --get-active-zones showed my wireless in the expected zone.