When looking at the disconnect() method and it's description it says the following in the docs
Disconnect the current FIRMessaging data connection. This stops any attempts to connect to FIRMessaging. Calling this on an already disconnected client is a no-op.
But looking at the shouldEstablishDirectChannel property
When set to YES, Firebase Messaging will automatically establish a socket-based, direct channel to the FCM server. You only need to enable this if you are sending upstream messages or receiving non-APNS, data-only messages in foregrounded apps. Default is NO.
It seems that they don't do exactly the same thing, but I might be wrong. Can anyone clarify this for me?